summaryrefslogtreecommitdiff
path: root/firmware/drivers
diff options
context:
space:
mode:
Diffstat (limited to 'firmware/drivers')
-rw-r--r--firmware/drivers/serial.c16
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 @@
38void serial_setup (void) 38void 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
60static void process_byte(char byte) 56static 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
110void RXI1 (void) 106void 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);