Hallo, ich muss eine Menüsteuerung realisieren. Dabei sind einige Knöpfe doppelt belegt, d.h. funktion 1 bei Tastendruck ca. 0,5sek und Funktion 2 bei Tastendruck länger als 2 sek. jetzt die Frage wie kann ich sowas in C am besten ohne externe interrupts realisieren ohne mir dabei alle möglichkeiten des Programmablaufs zu verbauen (stichwort warteschleife etc.)? einen internen Timer habe ich zur Verfügung. evtl. kann jemand nen kurzen Codesample posten oder mailen falls jemand schon sowas gemacht hat. Gruß Malte.
Hallo, also wenn der interne Timer sowie so benutzt wird, dann liegt der folgende Lösungsansatz sehr nah: Der Timer ruft aller n ms (z.B. 100ms) einen Timer-Interrupt auf. Die Funktion die dann aufgerufen wird, inkrementiert eine globale Variable (also z.B. TIMER_KEY_COUNT++;) so lange, wie auch die Taste gedrückt wird. Hat diese Variable einen Wert x erreicht (hier z.B.: if (TIMER_KEY_COUNT>=20) { /* Taste wurde 2 Sekunden gedrückt */ }), dann erfolgt die Entscheidung. J.St.
Stimt, hab die ganze Zeit andersrum gedacht... aber so gehts... manchmal hat man gerade bei sowas einfach n Brett vorm Kopf ;-)
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.