@@ -35,21 +35,20 @@ void shared_module_softencoder_state_init(rotaryio_incrementalencoder_obj_t *sel
35
35
}
36
36
37
37
void shared_module_softencoder_state_update (rotaryio_incrementalencoder_obj_t * self , uint8_t new_state ) {
38
- #define BAD 7
39
38
static const int8_t transitions [16 ] = {
40
39
0 , // 00 -> 00 no movement
41
40
-1 , // 00 -> 01 3/4 ccw (11 detent) or 1/4 ccw (00 at detent)
42
41
+1 , // 00 -> 10 3/4 cw or 1/4 cw
43
- BAD , // 00 -> 11 non-Gray-code transition
42
+ 0 , // 00 -> 11 non-Gray-code transition
44
43
+1 , // 01 -> 00 2/4 or 4/4 cw
45
44
0 , // 01 -> 01 no movement
46
- BAD , // 01 -> 10 non-Gray-code transition
45
+ 0 , // 01 -> 10 non-Gray-code transition
47
46
-1 , // 01 -> 11 4/4 or 2/4 ccw
48
47
-1 , // 10 -> 00 2/4 or 4/4 ccw
49
- BAD , // 10 -> 01 non-Gray-code transition
48
+ 0 , // 10 -> 01 non-Gray-code transition
50
49
0 , // 10 -> 10 no movement
51
50
+1 , // 10 -> 11 4/4 or 2/4 cw
52
- BAD , // 11 -> 00 non-Gray-code transition
51
+ 0 , // 11 -> 00 non-Gray-code transition
53
52
+1 , // 11 -> 01 1/4 or 3/4 cw
54
53
-1 , // 11 -> 10 1/4 or 3/4 ccw
55
54
0 , // 11 -> 11 no movement
@@ -60,10 +59,6 @@ void shared_module_softencoder_state_update(rotaryio_incrementalencoder_obj_t *s
60
59
self -> state = new_state ;
61
60
62
61
int8_t quarter_incr = transitions [idx ];
63
- if (quarter_incr == BAD ) {
64
- // Missed a transition. We don't know which way we're going, so do nothing.
65
- return ;
66
- }
67
62
68
63
self -> quarter_count += quarter_incr ;
69
64
0 commit comments