Hm,
meinst du das so in etwa?:
Code:
$regfile = "m8def.dat"
$crystal = 4000000
Ddrb = &B00111100
Ddrc = &B00001110
Ddrd = &B10000001
Portb = &B00000000
Portc = &B00000000
Portd = &B00001000
Eingang Alias Pind.3
Code_hoch Alias "0111011110"
Code_rechts Alias "1011101101"
Code_links Alias "0011011110"
Code_runter Alias "1011001101"
Code_enter Alias "0111101101"
Code_frechts Alias "1011011110"
Code_flinks Alias "0011101100"
Error_led Alias Portd.7
Dim Statusbit As Byte
'Bits im Statusbyte:
Faceauf Alias 0
Get_data Alias 1
Menue Alias 2
On Int1 Ir_dataempfang
Enable Int1
Enable Interrupts
Hauptschleife:
Do
Loop
Ir_dataempfang:
'Dieser Teil ist für euch unbedeutend-----
Set Error_led
For A = 0 To 71
Temp(a) = Eingang
Waitus 902
Next A
Code = ""
For A = 49 To 58
Tmp = Temp(a)
Code = Code + Str(tmp)
Next A
'-------------------------------------------
gosub auswertung_code
Do
'Warte bis Taste wieder losgelassen wurde
A = A + 1
If A > 125 Then
Goto Losgelassen
End If
If Eingang = 0 Then A = 1
Waitms 1
Loop
Losgelassen:
Reset Error_led
Return
'Ende Interruptroutine
sub auswertung_code
If Code = Code_rechts Then
If Statusbit.menue = 1 Then
Menue_cnt = Menue_cnt + 1
Locate 2 , 1
If Menue_cnt > 4 Then Menue_cnt = 1
If Menue_cnt < 1 Then Menue_cnt = 4
If Menue_cnt = 1 Then Lcd "Fahr alleine rum"
If Menue_cnt = 2 Then Lcd " manuell fahren "
If Menue_cnt = 3 Then Lcd " Raumtemperatur "
If Menue_cnt = 4 Then Lcd " Akku Spannung "
End If
End If
If Code = Code_enter Then
If Statusbit.menue = 0 Then
Statusbit.menue = 1
Cls
Locate 1 , 4
Lcd "Hauptmenõ"
Locate 2 , 1
Lcd "Fahr alleine rum"
Menue_cnt = 1
Else
Cls
Locate 1 , 2
Lcd "Menõ verlassen"
Statusbit.menue = 0
End If
End If
return
end sub
Dann wird die Auswertung aber doch irgendwie immer noch innerhalb des Interrupts abgearbeitet oder ist das so ein Unterschied weil es im Sub steht?
PS: generall verstehe ich aber immer noch nicht warum die Variable immer wieder auf Null gesetzt wird. Wo kommt der Befehl denn bloß her?
Wenn ein Wert im Speicher einmal drinne steht dann steht er doch drinne. Wer Pfucht denn da dann am Speicher und macht aus der 1 wieder eine 0 ?
Lesezeichen