Zeit von einem Tastendruck Messen

Gast #303097
Lesenswert?

Hallo,

ich versuche nun schon seit 2 Tagen die dauer eines Tastendrucks zu
messen um mit einem Taster verschiedene Funktionen ausführen zu können.
Ich benutze einen ATMega8 und Bascom.

Meine Denkansatz bis jetzt:

1. Taster wird gedrückt (Flanke fällt), entprellt und ein Timer wird
gestartet

2. Taster wird losgelassen (Flanke steigt), entprellt, der Timer wird
gestoppt, der Wert gesichert und der Timer wieder auf 0 gesetzt.

3. Wenn der Wert über 1Sekunde beträgt, wird das bit für "Kurz"
gesetzt. Wenn der Wert unter 1 Sekunde beträgt wird das bit für
"Lang" gesetzt.

Ich bin die ganze Zeit am Probieren, aber bekomms einfach nicht hin.
Wäre jemand so nett mir ein bisschen zu helfen?

Danke schonmal.
Gast #303098
Lesenswert?

1 Sekunde ist für mich schon eher lang, und Zeiten unter 1 Sekunde eher
kurz. Aber du kannst das definieren wie du willst :o) Wie wärs mit dem
ansatz den du schon hast, in Worten stimmts ja schon mal.
Gast #303099
Lesenswert?

Man könnte auch das Entprellen, das gedrückt erkennen und das lange
gedrückt erkennen im Timerinterrupt zusammen fassen.

Und damit es sich auch lohnt, das Ganze für bis zu 8 Tasten
gleichzeitig. Wobei das lange gedrückt erkennen nur für eine Taste
gleichzeitig ausreichen sollte.

Das Beispiel ist allerdings nur in C geschrieben:

http://www.mikrocontroller.net/attachment.php/252480/C_TAST.C


Peter
Gast #303100
Lesenswert?

@Montero
Ja in Worten stimmts ja auch soweit (Bis auf die Verwechslung mit Lang
und Kurz), aber ich komme einfach bein Programmieren nicht weiter...

@Peter, dass hilft mir leider gar nicht weiter, da ich null Ahung von C
habe. Würd mich freuen wenn ich Basic ein bisschen besser können würde.

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