Hallo Chris,
programm-mäßig sollte dies das gleiche wie deines machen. Kleinere Fehler sind dabei behoben.
Code:
$regfile = "m32def.dat"
$crystal = 16000000
Config Adc = Single , Prescaler = Auto
Config Portc = Output
Portc = 31
Dim I As Word
Dim X As Word
X = 1
Do
Start Adc
X = Getadc(7)
If X < 130 Then
I = I - 1
If I = 0 Then I = 5
Elseif X < 220 Then
I = I + 1
If I = 6 Then I = 1
End If
Waitms 20
Portc = 31
Portc.i = 0
End If
Loop
End
Annahme ist, dass die beiden Taster überWiderstände am PORTA.7 angeschlossen sind.
Wenn der erste gedrückt ist, kommt ein Wert kleiner 130 raus, wenn der zweite gedrückt ist, ist der Wert zwischen 130 und 220.
Welcher Wertwird ausgegeben, wenn kein Taster gedrückt ist?
Wenn ein Taster länger als deine 20ms Wartezeit gedrückt ist, springt die LED mehrfach weiter.
Gruß
Rolf
Lesezeichen