Hallo Gemeinde
ich verwende das Programm von Peter zur Auswertung Encoder. Soweit ist
mit die Sache klar. Zusätzlich habe ich ein Display angeschlossen und
lasse mir die Werte anzeigen.
1 | for(;;)
|
2 | {
|
3 | val += encode_read4(); // lesen 1,2 oder 4 Schritt Encoder
|
4 | LEDS = val;
|
5 | Anzeige(val);
|
6 | }
|
Auswertung erfolgt damit:
1 | int8_t encode_read4( void ) // lesen vier Schritt Encoder = langsam
|
2 | {
|
3 | int8_t val;
|
4 | cli();
|
5 | val = enc_delta;
|
6 | enc_delta = val & 3;
|
7 | sei();
|
8 | return val >> 2;
|
9 | }
|
Dabei kann val einen positiven oder negativen Wert unterschiedlicher
Grösse annehmen.
So einen grossen Wert brauche ich nicht. Möchte einfach wissen ob
positiv oder negativ bzw. eine Begrenzung auf ca. 8 Werte und dann
wieder auf null. Habe leider kein Plan dazu.
LG Kl