Forum: Mikrocontroller und Digitale Elektronik Zeit von einem Tastendruck Messen


von roman (Gast)


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.

von Montero (Gast)


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.

von peter dannegger (Gast)


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

von roman (Gast)


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.

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.