Hucky3000
Geocacher
Hallo !
Ich steh mal wieder im Regen, irgendwie blicke ich es nicht was mit der Variable "Wert" passiert.
Es soll eine "Tastaturmatrix" mit gemeinsamer Masse ausgelesen werden.
Wenn ich keine Taste drücke sollte die Variable den Wert "0" haben. Hat sie aber nicht. Nur wenn ich DIREKT vor der Abfrage "Wert = 0" schreibe. Wenn ich irgendwo hänge kontrolliere ich Programmpunkte indem ich einfach ne LED ansteuere, damit ich überhaupt sehe WAS passiert, bzw. wann was passiert.
Die LED leuchtet nur wenn ich direkt vor der Abfrage "if wert = 0 then goto Abfrage" den Wert wirklich auf 0 setzte. WARUM ?!
Hucky
Ich steh mal wieder im Regen, irgendwie blicke ich es nicht was mit der Variable "Wert" passiert.
Es soll eine "Tastaturmatrix" mit gemeinsamer Masse ausgelesen werden.
Wenn ich keine Taste drücke sollte die Variable den Wert "0" haben. Hat sie aber nicht. Nur wenn ich DIREKT vor der Abfrage "Wert = 0" schreibe. Wenn ich irgendwo hänge kontrolliere ich Programmpunkte indem ich einfach ne LED ansteuere, damit ich überhaupt sehe WAS passiert, bzw. wann was passiert.
Die LED leuchtet nur wenn ich direkt vor der Abfrage "if wert = 0 then goto Abfrage" den Wert wirklich auf 0 setzte. WARUM ?!
Hucky
Code:
'***********************************************
'Blechkasten - Nachtcache
'Compiler : BASCOM-AVR
'Hardware : Tastencode,LEDs,Servo
'Version 0.1
'Hucky3000
'***********************************************
$regfile = "attiny2313.dat"
$crystal = 4000000
$framesize = 32
$swstack = 10
$hwstack = 40
Config Portb = &B00000000 'PortB komplett auf Eingang
Config Portd = &B01111000 'PortD 0-2 auf Eingang - Rest auf Ausgang - PD7 nicht vorhanden
Portb = &B11111111 'PortB komplett Pull Up ein
Portd = &B00000111 'PortD 0-2 Pull Up ein
Dim Sperre As Byte
Dim Zaehler As Byte
Dim Wert As Byte
Dim Daten As Byte
Dim Ok As Byte
Anfang:
Portd.3 = 0
Portd.4 = 0
Sperre = 0
Zaehler = 0
Ok = 0
Wert = 0
Restore Dta1
Abfrage:
If Sperre = 1 Then Goto Weiter1
If Pinb.0 = 0 Then Wert = 10
If Pinb.1 = 0 Then Wert = 1
If Pinb.2 = 0 Then Wert = 2
If Pinb.3 = 0 Then Wert = 3
If Pinb.4 = 0 Then Wert = 4
If Pinb.5 = 0 Then Wert = 5
If Pinb.6 = 0 Then Wert = 6
If Pinb.7 = 0 Then Wert = 7
If Pind.0 = 0 Then Wert = 8
If Pind.1 = 0 Then Wert = 9
If Wert = 0 Then Goto Abfrage
Lesen:
Sperre = 1
Read Daten
If Wert = Daten Then Ok = Ok + 1
Zaehler = Zaehler + 1
Portd.4 = 1
Waitms 300
Portd.4 = 0
If Ok = 6 Then Goto Tuerauf
If Zaehler = 6 Then Goto Falsch
Goto Abfrage
Weiter1:
If Portb = 255 Then Goto Weiter2
Goto Abfrage
Weiter2:
If Pind.0 = 1 Then Goto Weiter3
Goto Abfrage
Weiter3:
If Pind.1 = 1 Then Goto Weiter4
Goto Abfrage
Weiter4:
Sperre = 0
Goto Abfrage
Tuerauf:
Portd.4 = 1
Wait 5
Goto Anfang
Falsch:
Portd.3 = 1
Wait 5
Goto Anfang
Dta1:
Data 1 , 2 , 3 , 4 , 5 , 6