Gast
#10721
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
|
Anzeige
|
Taster-Zeit-Abfrage
Gast
#10721
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
Gast
#10722
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.
Gast
#10723
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ß
Gast
#10724
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
Gast
#10725
@Markus: will nicht meckern, aber "schön" schreibt sich auf englisch beautiful (also mit i statt y).
Gast
#10726
Ups :) Antwort schreibenBitte melde dich an, um einen Beitrag zu schreiben. |
Anzeige
|