1 | void rotary_enc() |
2 | {
|
3 | currentTime = millis(); |
4 | if (currentTime >= (loopTime + 2)) { |
5 | encoder_A = digitalRead(pin_A); |
6 | encoder_B = digitalRead(pin_B); |
7 | if ((!encoder_A) && (encoder_A_prev)) { |
8 | if (encoder_B) { |
9 | Freq = Freq + ChanStep; |
10 | if (Freq > 440000000) { |
11 | Freq = 3500000; |
12 | }
|
13 | }
|
14 | else { |
15 | Freq = Freq - ChanStep; |
16 | if (Freq < 3500000) { |
17 | Freq = 440000000; |
18 | }
|
19 | }
|
20 | }
|
21 | encoder_A_prev = encoder_A; |
22 | loopTime = currentTime; |
23 | }
|
24 | }
|
So kann man es machen, besser ist es aber, auf Flanken zu reagieren, anstatt auf Zustände zu einem Zeitpunkt.
Beitrag #5825744 wurde vom Autor gelöscht.
Beitrag #5961926 wurde vom Autor gelöscht.
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.