diff options
Diffstat (limited to 'firmware')
-rw-r--r-- | firmware/drivers/serial.c | 16 |
1 files changed, 6 insertions, 10 deletions
diff --git a/firmware/drivers/serial.c b/firmware/drivers/serial.c index ee83e2a474..112e45c1e4 100644 --- a/firmware/drivers/serial.c +++ b/firmware/drivers/serial.c | |||
@@ -38,26 +38,22 @@ | |||
38 | void serial_setup (void) | 38 | void serial_setup (void) |
39 | { | 39 | { |
40 | char dummy; | 40 | char dummy; |
41 | int i; | ||
42 | int j; | ||
43 | dummy = SSR1; | 41 | dummy = SSR1; |
44 | SSR1=0; | 42 | SSR1 = 0; |
45 | SMR1 = 0x00; | 43 | SMR1 = 0x00; |
46 | SCR1=0; | 44 | SCR1 = 0; |
47 | BRR1 = (FREQ/(32*9600))-1; | 45 | BRR1 = (FREQ/(32*9600))-1; |
48 | 46 | ||
49 | /* let the hardware settle */ | 47 | /* let the hardware settle */ |
50 | for (i = 0; i < 1000; i++) | 48 | sleep(1); |
51 | j++; | ||
52 | 49 | ||
53 | SCR1 = 0x50; | 50 | SCR1 = 0x50; |
54 | 51 | ||
55 | /* This enables the serial Rx interrupt*/ | 52 | /* This enables the serial Rx interrupt*/ |
56 | IPRE = (IPRE & 0x0FFF) | 0x8000; /* Set to medium priority */ | 53 | IPRE = (IPRE & 0x0FFF) | 0x8000; /* Set to medium priority */ |
57 | |||
58 | } | 54 | } |
59 | 55 | ||
60 | static void process_byte(char byte) | 56 | static void process_byte(int byte) |
61 | { | 57 | { |
62 | int btn = 0; | 58 | int btn = 0; |
63 | 59 | ||
@@ -109,7 +105,7 @@ void REI1 (void) | |||
109 | #pragma interrupt | 105 | #pragma interrupt |
110 | void RXI1 (void) | 106 | void RXI1 (void) |
111 | { | 107 | { |
112 | char serial_byte; | 108 | unsigned char serial_byte; |
113 | serial_byte = RDR1; | 109 | serial_byte = RDR1; |
114 | SSR1 = SSR1 & ~0x40; /* Clear RDRF */ | 110 | SSR1 = SSR1 & ~0x40; /* Clear RDRF */ |
115 | process_byte(serial_byte); | 111 | process_byte(serial_byte); |