Stefan Schuermans commited on 2012-03-24 23:13:53
Showing 1 changed files, with 23 additions and 11 deletions.
| ... | ... |
@@ -10,8 +10,19 @@ |
| 10 | 10 |
|
| 11 | 11 |
unsigned char leds_val = 0x88; |
| 12 | 12 |
|
| 13 |
+void uint2digits(unsigned int uint, unsigned int cnt, char digits[]) |
|
| 14 |
+{
|
|
| 15 |
+ while (cnt > 0) {
|
|
| 16 |
+ --cnt; |
|
| 17 |
+ digits[cnt] = '0' + uint % 10; |
|
| 18 |
+ uint /= 10; |
|
| 19 |
+ } |
|
| 20 |
+} |
|
| 21 |
+ |
|
| 13 | 22 |
void switches(void) |
| 14 | 23 |
{
|
| 24 |
+ char cnt_digits[4]; |
|
| 25 |
+ |
|
| 15 | 26 |
lcd_chr(1, 0, switches_get_state(sw_0) ? '0' : ' '); |
| 16 | 27 |
lcd_chr(1, 1, switches_get_state(sw_1) ? '1' : ' '); |
| 17 | 28 |
lcd_chr(1, 2, switches_get_state(sw_2) ? '2' : ' '); |
| ... | ... |
@@ -24,11 +35,11 @@ void switches(void) |
| 24 | 35 |
lcd_chr(1, 9, switches_get_state(sw_rot_a) ? 'a' : ' '); |
| 25 | 36 |
lcd_chr(1, 10, switches_get_state(sw_rot_b) ? 'b' : ' '); |
| 26 | 37 |
|
| 27 |
- unsigned int cnt = switches_get_rot_cnt(); |
|
| 28 |
- lcd_chr(1, 12, '0' + (cnt >> 9 & 0x7)); |
|
| 29 |
- lcd_chr(1, 13, '0' + (cnt >> 6 & 0x7)); |
|
| 30 |
- lcd_chr(1, 14, '0' + (cnt >> 3 & 0x7)); |
|
| 31 |
- lcd_chr(1, 15, '0' + (cnt & 0x7)); |
|
| 38 |
+ uint2digits(switches_get_rot_cnt(), 4, cnt_digits); |
|
| 39 |
+ lcd_chr(1, 12, cnt_digits[0]); |
|
| 40 |
+ lcd_chr(1, 13, cnt_digits[1]); |
|
| 41 |
+ lcd_chr(1, 14, cnt_digits[2]); |
|
| 42 |
+ lcd_chr(1, 15, cnt_digits[3]); |
|
| 32 | 43 |
} |
| 33 | 44 |
|
| 34 | 45 |
void uart(void) |
| ... | ... |
@@ -46,16 +57,17 @@ void eth_task(void) |
| 46 | 57 |
{
|
| 47 | 58 |
void *vptr; |
| 48 | 59 |
unsigned int sz, i; |
| 60 |
+ char digits[2]; |
|
| 49 | 61 |
|
| 50 | 62 |
while (eth_rx(&vptr, &sz)) |
| 51 | 63 |
ethernet_recv(vptr, sz); |
| 52 | 64 |
|
| 53 |
- i = eth_rx_get_cnt(); |
|
| 54 |
- lcd_chr(0, 11, '0' + (i >> 3 & 0x7)); |
|
| 55 |
- lcd_chr(0, 12, '0' + (i & 0x7)); |
|
| 56 |
- i = eth_tx_get_cnt(); |
|
| 57 |
- lcd_chr(0, 14, '0' + (i >> 3 & 0x7)); |
|
| 58 |
- lcd_chr(0, 15, '0' + (i & 0x7)); |
|
| 65 |
+ uint2digits(eth_rx_get_cnt(), 2, digits);; |
|
| 66 |
+ lcd_chr(0, 11, digits[0]); |
|
| 67 |
+ lcd_chr(0, 12, digits[1]); |
|
| 68 |
+ uint2digits(eth_tx_get_cnt(), 2, digits);; |
|
| 69 |
+ lcd_chr(0, 14, digits[0]); |
|
| 70 |
+ lcd_chr(0, 15, digits[1]); |
|
| 59 | 71 |
} |
| 60 | 72 |
|
| 61 | 73 |
void tasks(void) |
| 62 | 74 |