digitali
12.02.2006, 23:03
Hallo,
ich hab da ein merkwuerdiges Problem. Vielleicht ist es auch keins und ich bin einfach nur zu doof. :)
An einem ATMega8 habe ich einen Drehimpulsgeber angeschlossen. Je nach Drehrichtung wird dann die eine oder andere LED kurz eingeschaltet. Das funktioniert auch soweit bestens.
Durch den Druck auf die Achse des Impulsgebers kann ich noch eine zusaetzliche Schaltfunktion ausloesen (Enter). Und genau da ist mein Problem: Ich schaffe es einfach nicht diese daemliche Taste abzufragen und damit eine LED kurz einzuschalten:
-------------------------------------------------------------------------------
$regfile = "m8def.dat"
$crystal = 16000000
Config Portc = Output
Config Portd = Input
Dim B As Byte
Portd = 255
Do
Portc = &B11111111
B = Encoder(pind.1 , Pind.0 , Links , Rechts , 1)
If Pind.2 = 0 Then 'Abfrage der Enter-Taste
Gosub Enter
End If
Waitms 5
Loop
End
Links:
Portc = &B11110111 'LED an Pind.3
Waitms 5
Return
Rechts:
Portc = &B11101111 'LED an Pind.4
Waitms 5
Return
Enter:
Portc = &B11011111 'LED an Pind.5
Waitms 5
Return
-------------------------------------------------------------------------------
Sobald ich die Zeile "B = Encoder(pind.1 , Pind.0 , Links , Rechts , 1)" rausnehme, kann ich komischerweise die Schaltfunktion wunderbar ausloesen. Ist sie wieder aktiv, wird die darunterliegende if-then Schleife nicht mehr abgearbeitet.
Ehrlich gesagt bin ich einwenig ratlos. Hat da jemand ne Idee?
Mit freundlichen Gruessen
Digitali
ich hab da ein merkwuerdiges Problem. Vielleicht ist es auch keins und ich bin einfach nur zu doof. :)
An einem ATMega8 habe ich einen Drehimpulsgeber angeschlossen. Je nach Drehrichtung wird dann die eine oder andere LED kurz eingeschaltet. Das funktioniert auch soweit bestens.
Durch den Druck auf die Achse des Impulsgebers kann ich noch eine zusaetzliche Schaltfunktion ausloesen (Enter). Und genau da ist mein Problem: Ich schaffe es einfach nicht diese daemliche Taste abzufragen und damit eine LED kurz einzuschalten:
-------------------------------------------------------------------------------
$regfile = "m8def.dat"
$crystal = 16000000
Config Portc = Output
Config Portd = Input
Dim B As Byte
Portd = 255
Do
Portc = &B11111111
B = Encoder(pind.1 , Pind.0 , Links , Rechts , 1)
If Pind.2 = 0 Then 'Abfrage der Enter-Taste
Gosub Enter
End If
Waitms 5
Loop
End
Links:
Portc = &B11110111 'LED an Pind.3
Waitms 5
Return
Rechts:
Portc = &B11101111 'LED an Pind.4
Waitms 5
Return
Enter:
Portc = &B11011111 'LED an Pind.5
Waitms 5
Return
-------------------------------------------------------------------------------
Sobald ich die Zeile "B = Encoder(pind.1 , Pind.0 , Links , Rechts , 1)" rausnehme, kann ich komischerweise die Schaltfunktion wunderbar ausloesen. Ist sie wieder aktiv, wird die darunterliegende if-then Schleife nicht mehr abgearbeitet.
Ehrlich gesagt bin ich einwenig ratlos. Hat da jemand ne Idee?
Mit freundlichen Gruessen
Digitali