1. Schau auf deine Tastatur dann bist du im Bilde.
2. Wer im Glashaus sitzt............
Wenn du schon auf Oberleherer machst dann solltest du mal deine
Shift-Taste nutzen ;)
3. Ist das hier kein Labertopic
Zip,Zap,Zerap ;)
Druckbare Version
1. Schau auf deine Tastatur dann bist du im Bilde.
2. Wer im Glashaus sitzt............
Wenn du schon auf Oberleherer machst dann solltest du mal deine
Shift-Taste nutzen ;)
3. Ist das hier kein Labertopic
Zip,Zap,Zerap ;)
Hallo,
habe einen Fehler entdeckt, der mir sehr viel Zeit gekostet hat. Hier ein kleines Programm, um den Fehler zu zeigen.
Mit Print Bin(sio(1)) stimmt das Bitmuster, versucht man aber die Bits einzeln auswerten, geht es daneben. Andere Bitmuster wie z.B. Sio(1) = &B1010_1010_1010_1010 funktionieren aber. :-sCode:$sim
$regfile = "m8def.dat"
$crystal = 16000000
$baud = 9600
$hwstack = 40
$swstack = 16
$framesize = 10
Dim Sio(3) As Word
Dim X As Byte
Sio(1) = &B0000_0001_0011_0000
sio(2) = &B0000_0001_1110_1000
sio(3) = &B0000_0001_1111_0000
Print Bin(sio(1))
Print Sio(1).15;
Print Sio(1).14;
Print Sio(1).13;
Print Sio(1).12;
Print Sio(1).11;
Print Sio(1).10;
Print Sio(1).9;
Print Sio(1).8;
Print Sio(1).7;
Print Sio(1).6;
Print Sio(1).5;
Print Sio(1).4;
Print Sio(1).3;
Print Sio(1).2;
Print Sio(1).1;
Print Sio(1).0;
End
Gruß
Günter
Bascom Version: 1.11.8.7
Bei dem unten angehängtem Programm wird der Circle-Befehl, der die übergebenen Koordinaten im Aufruf hat, nicht richtig ausgeführt.
Die Variablen sind ok, es scheint so, dass der Circle-Befehl die Parameter falsch übernimmt.
Fehler ist noch nicht gemeldet
Code:' Testprog glcd
$regfile = "m16def.dat"
$hwstack = 128
$swstack = 128
$framesize = 128
$crystal = 16000000
$baud = 19200
Baud = 19200
'First we define that we use a graphic LCD
Config Graphlcd = 240 * 128 , Dataport = Porta , Controlport = Portb , Ce = 2 , Cd = 3 , Wr = 0 , Rd = 1 , Reset = 4 , Fs = 5 , Mode = 8
Declare Sub Tacho(nr As Byte , Xcenter As Byte , Ycenter As Byte , Radius As Byte , Maxval As Long , Aktval As Long)
Const Black = 255
Const X1 = 200
Const Y1 = 100
Const R1 = 20
Dim Xc As Byte
Xc = 60
Dim Yc As Byte
Yc = 70
Dim Rr As Byte
Rr = 50
Dim Nn As Byte
Nn = 1
Dim Vmax As Long
Vmax = 200
Dim Vakt As Long
Vakt = 200
Cls
Cursor Off , No Blink
Call Tacho(nn , Xc , Yc , Rr , Vmax , Vakt)
Wait 1
Circle(xc , Yc) , Rr , Black ' Ok, draw a circle
End 'end program
Sub Tacho(nr As Byte , Xcenter As Byte , Ycenter As Byte , Radius As Byte , Maxval As Long , Aktval As Long)
Circle(xcenter , Ycenter) , Radius , Black ' failed, one dot at Coordinate X=YCenter, Y=0 (radius=0 ?)
Circle(30 , 30) , 20 , Black ' Ok, draw a circle
Circle(x1 , Y1) , R1 , Black ' OK, draw a circle
End Sub
Bascom Version: 1.11.8.7
Controller: Tiny24
der Befehl getadc (pinadresse) muss zweimal hintereinander ausgeführt werden, ehe der ausgelesene Wert aus dem Register gelöscht und ein neuer ADC-Wert eingelesen werden kann. Fällt erst auf, wenn man mehrere verschiedene Spannungen einlesen möchte.
Dieser Fehler hat mich echt zur Weißglut getrieben. Ich hoffe meine Fehlerbeschreibung ist zu verstehen.
An den Hersteller habe ich diesen Bug nicht gemeldet.
mfg
Hostmann
Fehler entdeckt mit Bascom 1.11.8.x bis 1.11.8.8 sowie dem ATMega2560.
Die ADC Kanäle 8-15 können nicht mit getadc( 8 ), getadc( 9 ) ... usw. ausgelesen werden. Die ADC Kanäle 0-7 hingegen funktionieren normal.
Die Lösung des Problem ist Adcsrb.mux5 zu setzen.
Hier ein Beispiel wie es funktioniert :
Hier der Tread zum Thema : https://www.roboternetz.de/phpBB2/vi...=295067#295067Code:Adcsrb.mux5 = 0 'Enable ADC 0 - 7
getadc(x) ' x = 0 ... 7
Adcsrb.mux5 = 1 ' and now disable ADC 0-7 and enable ADC 8-15
getadc(x) ' x = 0 ... 7
Vielen Dank an linux_80 für die Lösung des Problems.
Edit: seit Bascom Version 1.11.8.9 ist dieses Problem behoben.
----------------------------------------------------------------------Zitat:
Getadc() will set adcsrb.mux5 bit for channel>7 on m2560, m1280
RC5 Receiver - Fehler entdeckt in Bascom 1.11.8.x - 1.11.8.8 :
Standart Code RC5 Empfänger aus der Hilfe funktioniert nicht. Der Code wird im Bascom nicht kompiliert:
Lösung :
-öffne m2560def.dat mit notepad etc.
-suche nach timsk0
Code einfügen das es so ausieht :
TIMSK0=$6e
TIMSK=$6E
-Speichern-
Gruß
Steffen
Edit : Das ADC Problem wird in der nächsten Version behoben sein.
Vielen Dank MCS Mark ;-)
Hallo,
Probleme beim ADC mit Tiny24, 44 und 84,
Bascom Version bis 1.11.8.8 (bei 1.11.8.9 steht noch nix davon in der History)
Thread:
https://www.roboternetz.de/phpBB2/ze...ag.php?t=32204
Beim Compilieren wurden die Register in der internen BascomLib durcheinandergebracht, was ein nutzen des ADC mit dem Bascom-GetADC unmöglich macht.
Fehler an MCS gemeldet.
Edit:
(MCS-Antwort 31.07.2007):
Wird im nächsten update behoben.
Edit 2:
Workaround, bis das Update verfügbar ist:
https://www.roboternetz.de/phpBB2/vi...=310182#310182
Ich hab mich jetzt mit der .8 und der .9 er Version schon Stunden gespielt, aber der urxc interrupt bei meinem Mega2560 funktioniert leider nicht.
Habt ihr das gleiche Problem??
Habs noch nicht an Bascom gemailt, wollte zuerst mal nachfragen.
Bei mir unterbricht Bascom das Herunterfahren von Windows. Ich muss Bascom erst beenden und erst dann lässt sich Windows beenden. Habe inzwischen Version 1.11.8.8. Ich habe den Fehler heute gemeldet.
Problem erledigt.
.....offensichtlich gibt es bei der Übergabe von mehr als 2 Parametern Probleme. Konkret: Die einer SUB übergebenen Werte sind in dieser falsch!
....
nein, ist kein fehler, setzt dieses hier .
$hwstack = 32
$swstack = 32
$framesize = 64
dann geht es.