Hi,
ich hätte nicht gedacht, dass man sich an so einer Thematik länger als
10min aufhalten kann, aber ich bin mit meinen Denkansätze nicht zu
frieden.
Ich möchte gerne eine Tastendruck "nahezu" sofort auswerten aber auch
noch die Möglichkeit haben ein langes drücken zu detektieren.
ich speichere mir den Zustand des Pins aktuell in 2 Variablen:
aktueller und letzter Zustand.
Somit habe ich das bekannte detektieren von Kanten.
nehmen wir uns nun die methode "&incrementValue()" daher, die auf einen
Knopf/IO gemappt werden soll.
mein Timer aktualisiert "alt" & "neu" alle 10ms.
Somit habe ich also ggf. alle 10ms ein neues RISING oder FALLING.
1 | if(RISING){
|
2 | incrementValue();
|
3 | }
|
Kommt überspringt manche Inputs, weil vom Timing so schnell gedrückt
worden ist, dass bereits wieder FALLING aktiv ist.
1 | if(FALLING){
|
2 | incrementValue();
|
3 | }
|
Ist da zuverlässiger, verwirrt jedoch, wenn man den Knopf fest hält.
Und nun die spannendste Frage, wie baue ich ein
1 | ...
|
2 | incrementValue();
|
3 | }
|
für lange Haltezeit ein ohne die anderen beiden Detektionen zu
verlieren?
Grüße Oekel