Forum: Mikrocontroller und Digitale Elektronik BASCOM: Taste lang oder kurz gedrückt?


von Max (Gast)


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

von MeinerEiner (Gast)


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)

von Peter D. (peda)


Lesenswert?


von Max (Gast)


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

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
Noch kein Account? Hier anmelden.