Looser
13.02.2006, 22:12
Hallo Leute ich hab da ein Problem und komme nicht weiter. Mein Program läuft soweit. Wenn ich zB 00 01 00 00 05 00 an dem Eingangspin bekomme leuchte kurz meine LED am Portb.0 auf. das ist so richtig. mit den anderen funktioniert es auch. Jetzt möchte ich wenn ein bestimmter Wert kommt alle nacheinander aufleuchten lassen. das habe ich mit WAITMS 300 hinbekommen. Doch wenn in dieser Zeit ein weitere Wert bei INPUTBIN kommt, hängt sich alles auf. Also ist WAITMS falsch.Wie kann man das Problem anders lösen ?
Hoffe sehr auf eure Mithilfe und erst einmal DANKE
Hier mal mein Code.
Ddrd = &B0000000
Ddrb = &B0111111
Dim A As Byte
Dim B As Byte
Dim C As Byte
Dim Z As Byte
Declare Sub Weiter()
Portb.0 = 0
Portb.1 = 0
Portb.2 = 0
Portb.3 = 0
Portb.4 = 0
Portb.5 = 0
Config Timer0 = Timer , Prescale = 1024
Const Reload = 195
Enable Timer0 'Hier werden die Timer aktiviert
Enable Interrupts
On Timer0 Zeit
Z = 0
Do
Do
Do
Inputbin C , B , A
Select Case B
Case &H01 : Weiter
Case Else : Loop
End Select
Loop
Sub Weiter():
If A = &H05 Then
Portb.0 = 1
Start Timer0
End If
If A = &H06 Then
Portb.1 = 1
Start Timer0
End If
If A = &H07 Then
Portb.2 = 1
Start Timer0
End If
End Sub
Loop
'-----------------------------------------------------------------------------
Zeit:
Load Timer0 , Reload
Incr Z
If Z = 6 Then
Z = 0
Stop Timer0
Portb = 0
End If
Return
Hoffe sehr auf eure Mithilfe und erst einmal DANKE
Hier mal mein Code.
Ddrd = &B0000000
Ddrb = &B0111111
Dim A As Byte
Dim B As Byte
Dim C As Byte
Dim Z As Byte
Declare Sub Weiter()
Portb.0 = 0
Portb.1 = 0
Portb.2 = 0
Portb.3 = 0
Portb.4 = 0
Portb.5 = 0
Config Timer0 = Timer , Prescale = 1024
Const Reload = 195
Enable Timer0 'Hier werden die Timer aktiviert
Enable Interrupts
On Timer0 Zeit
Z = 0
Do
Do
Do
Inputbin C , B , A
Select Case B
Case &H01 : Weiter
Case Else : Loop
End Select
Loop
Sub Weiter():
If A = &H05 Then
Portb.0 = 1
Start Timer0
End If
If A = &H06 Then
Portb.1 = 1
Start Timer0
End If
If A = &H07 Then
Portb.2 = 1
Start Timer0
End If
End Sub
Loop
'-----------------------------------------------------------------------------
Zeit:
Load Timer0 , Reload
Incr Z
If Z = 6 Then
Z = 0
Stop Timer0
Portb = 0
End If
Return