BASCOM Taster Betätigungslänge erkennen

Gast #996882
Lesenswert?

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
Gast #996905
Lesenswert?

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

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren