Huhu. Ich muss jetzt mal ganz doof fragen, aber wie bekomm ich bei der Verwendung eines Drehencoders einen "virtuellen Anschlag" am einfachsten hin, sodass nach 0xff nicht wieder 0x00 (und umgedreht) eingestellt werden kann? viele Grüße.
feg_zeven schrieb: > wie bekomm ich bei der > Verwendung eines Drehencoders einen "virtuellen Anschlag" am einfachsten > hin, Indem Du Deine Auswerteschaltung oder -programm entsprechend auslegst.
Durch deine Programmlogik.
1 | int Posistion; |
2 | |
3 | position += read_enc(); |
4 | if (position < 0) position =0; |
5 | if (position > 100) position =100; |
Danke Falk. Einfache abfrage mit if hatte ich mir auch schon überlegt, aber bei einer unsigned Variable gibts ja kein < 0.
Dann musst du eben vor dem in-/dekrementieren abfragen, ob die Variable ihren Grenzwert schon erreicht hat.
@ feg_zeven (Gast) >Einfache abfrage mit if hatte ich mir auch schon überlegt, aber bei >einer unsigned Variable gibts ja kein < 0. Dann eben so.
1 | #define MAX = 100
|
2 | #define MIN = 0
|
3 | |
4 | unsigend int position; |
5 | int delta; |
6 | |
7 | delta = read_enc(); |
8 | if (delta>0) { |
9 | if (position <= MAX-delta) { |
10 | position +=delta; |
11 | } else { |
12 | position = MAX; |
13 | }
|
14 | } else { |
15 | if (position >= MIN-delta) { |
16 | position +=delta; |
17 | } else { |
18 | position = MIN; |
19 | }
|
20 | }
|
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.