BASCOM: Taste lang oder kurz gedrückt?

Gast #1325060
Lesenswert?

Hallo!

Ich möchte gerne mit BASCOM feststellen, ob eine Taste kurz oder lang 
gedrückt ist. Wenn die Taste weniger als 2 Sekunden gedrückt wurde, dann 
soll eine bestimmte Routine ausgeführt werden.

Ist die Taste länger als 2 Sekunden gedrückt soll eine andere Routine 
abgearbeitet werden. Allerdings sollte dieses Sub schon bei 2 Sekunden 
Tastendrucklänge laufen und nicht erst, wenn die Taste wieder 
losgelassen wird.

Wie kann ich das am einfachsten realisieren? Beispiele wären sehr gut.

Danke schonmal an alle,
Max
Gast #1325075
Lesenswert?

Nen Timer laufen lassen, der in ner Variable mitzählt, wenn die Taste 
gedrückt ist. Wird die Taste losgelassen und der Timer ist bei nem Wert 
< 2 Sekunden: Programmteil 1.
Erreicht die Variable nen Wert >=2: Programmteil 2.
(evtl hier noch Interrupt abschalten, weil nicht mehr nötig; nach Ende 
von Programmteil 2 wieder einschalten)
Gast #1325116
Lesenswert?

Danke für die schnellen Antworten.

Habe es jetzt mal so probiert:

1
If taste = 0 Then
2
  Waitms 25
3
  While taste = 0
4
    timer_taste_alt = timer_taste
5
    If timer_taste_alt > 2 Then
6
      Print "Taste lang gedrueckt"
7
    End If
8
  Wend
9
  If timer_taste_alt < 2 Then
10
    Print "Taste kurz gedrueckt"
11
  End If
12
  Bitwait taste , Set
13
End If


Funktioniert soweit auch, jedoch will ich das der Printbefehl nur einmal 
gesendet wird, wenn die Taste lang gedrückt ist. In diesem Beispiel wird 
der Befehl aber solange gesendet, bis ich die Taste wieder loslasse.

Kann mir da jemand helfen?

Danke,
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