Forum: Mikrocontroller und Digitale Elektronik Taster-Zeit-Abfrage


von Jens (Gast)


Lesenswert?

Hallo,

wie kann ich denn folgendes implementieren:

bei einem kurzen Tastendruck soll eine Funktion aufgerufen werden,
bei einem langen Tastendruck (vielleicht >2 sec) eine andere Funktion.

Jens

von Lars (Gast)


Lesenswert?

Du misst die "Drückzeit" und rufst dann beim loslassen des Tasters die 
entsprechende Funktion auf.

Der Trick ist also die Funktion nicht beim drücken des Tasters sondern 
beim loslassen aufzurufen.

von Jens (Gast)


Lesenswert?

Hallo Lars,

dieses Prinzip (Dein sog. Trick) ist mir schon klar, aber mich 
interessiert wie ich das implementiere (interrupt,...)

vielleicht gibts ja schon irgendwo ein beispiel...

Gruß

von Markus Burrer (Gast)


Lesenswert?

Ein interrupt ist nicht zwansläufig notwendig. Das hängt davon ab was 
der Controller sonst noch so zu tun hat. Wenn er sich eh langweilt 
kannst du es einfach so machen das du bei Drücken der Taste in eine 
Schleife springst. In dieser Schleife machst Du folgendes:

1. Abfragen ob die Taste noch gedrückt ist
2. Wurde die Taste losgelassen und der Zählerstand ist noch nicht zu 
groß erste Funktion aufrufen
2. einen Zähler hochzählen
3. wenn der Zähler einen bestimmten Wert erreicht hat zweite Funktion 
aufrufen.

Bevor du diese Schleife aufrufst solltest Du eine kurze Wartezeit 
einbauen damit das Prellen des Tasters nicht stört. 20-50 ms sollten 
reichen.
Hoffe das hilft

Gruß
Markus

von Jonas Diemer (Gast)


Lesenswert?

@Markus: will nicht meckern, aber "schön" schreibt sich auf englisch 
beautiful (also mit i statt y).

von Markus Burrer (Gast)


Lesenswert?

Ups :)

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.