Hallo!
Ich hab einen Taster an einen ATmega8 angeschlossen. Jetzt sollte
folgende Funktion realisiert werden:
Wenn der Taster kurz gedrückt wird, dann geht PortB.1 auf high.
Wenn der Taster länger als 2 Sek. gedrückt wird, dann geht PortB.1 auf
low.
Ich habe es so versucht:
---
...
Config Timer1= Timer , Prescale = 256
On Timer1 timerirq
Enable Timer1
Timer1 = 22336
...
Dim sekunden as byte
Main:
Do
If Taster = 0 and PortB.1 = 0 Then
waitms 25
bitwait Taster , Set
PortB.1 = 1
End If
If Taster = 0 and PortB.1 = 1 Then
waitms 25
sekunden = 0
If Sekunden < 2 Then
PortB.1 = 1
Elseif Sekunden >=2 Then
PortB.1 = 0
End If
End If
...
loop
Timerirq:
Timer1 = 22336
incr Sekunden
Return
---
Leider funktioniert das so nicht. Der Pin wird zwar angeschalten aber
das mit dem Ausschalten nach 2 Sek. funktioniert nicht.
Vielleicht hat jemand noch eine andere Idee.
Danke schonmal.
Max
Hallo! Die ist ja drinnen mit de waitms 25 und Bitwait. Das Programm ansich funktioniert so, nur das Erkennen ob der Taster weniger 2 Sek. oder länger als 2 Sek. gedrückt wurde funktioniert nicht. Max
Fehler: Du setzt deinen Sekundenzähler vor jeder Abfrage auf 0
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.