Stefan Schuermans commited on 2012-02-12 21:51:32
Showing 4 changed files, with 23 additions and 2 deletions.
... | ... |
@@ -22,6 +22,12 @@ void switches(void) |
22 | 22 |
lcd_chr(1, 8, switches_get_state(sw_center) ? 'C' : ' '); |
23 | 23 |
lcd_chr(1, 9, switches_get_state(sw_rot_a) ? 'a' : ' '); |
24 | 24 |
lcd_chr(1, 10, switches_get_state(sw_rot_b) ? 'b' : ' '); |
25 |
+ |
|
26 |
+ unsigned int cnt = switches_get_rot_cnt(); |
|
27 |
+ lcd_chr(1, 12, '0' + (cnt >> 9 & 0x7)); |
|
28 |
+ lcd_chr(1, 13, '0' + (cnt >> 6 & 0x7)); |
|
29 |
+ lcd_chr(1, 14, '0' + (cnt >> 3 & 0x7)); |
|
30 |
+ lcd_chr(1, 15, '0' + (cnt & 0x7)); |
|
25 | 31 |
} |
26 | 32 |
|
27 | 33 |
void delay(void) |
... | ... |
@@ -13,3 +13,12 @@ int switches_get_state(t_switch sw) |
13 | 13 |
return switches_ptr[0] >> sw & 1; |
14 | 14 |
} |
15 | 15 |
|
16 |
+/** |
|
17 |
+ * @brief get rotation counter of rotary switch |
|
18 |
+ * @return rotation counter |
|
19 |
+ */ |
|
20 |
+unsigned int switches_get_rot_cnt(void) |
|
21 |
+{ |
|
22 |
+ return switches_ptr[1]; |
|
23 |
+} |
|
24 |
+ |
... | ... |
@@ -23,5 +23,11 @@ typedef enum e_switch { |
23 | 23 |
*/ |
24 | 24 |
int switches_get_state(t_switch sw); |
25 | 25 |
|
26 |
+/** |
|
27 |
+ * @brief get rotation counter of rotary switch |
|
28 |
+ * @return rotation counter |
|
29 |
+ */ |
|
30 |
+unsigned int switches_get_rot_cnt(void); |
|
31 |
+ |
|
26 | 32 |
#endif /* #ifndef SWITCHES_H */ |
27 | 33 |
|
... | ... |
@@ -28,7 +28,7 @@ BEGIN |
28 | 28 |
-- de-gray-code rotary inputs |
29 | 29 |
IF pin_i_switches.rot_b = '1' THEN |
30 | 30 |
IF pin_i_switches.rot_a = '1' THEN |
31 |
- n_sample <= "10"; |
|
31 |
+ n_sample <= "00"; |
|
32 | 32 |
ELSE |
33 | 33 |
n_sample <= "11"; |
34 | 34 |
END IF; |
... | ... |
@@ -36,7 +36,7 @@ BEGIN |
36 | 36 |
IF pin_i_switches.rot_a = '1' THEN |
37 | 37 |
n_sample <= "01"; |
38 | 38 |
ELSE |
39 |
- n_sample <= "00"; |
|
39 |
+ n_sample <= "10"; |
|
40 | 40 |
END IF; |
41 | 41 |
END IF; |
42 | 42 |
END PROCESS p_sample; |
43 | 43 |