summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBjörn Stenberg <bjorn@haxx.se>2002-08-13 20:58:03 +0000
committerBjörn Stenberg <bjorn@haxx.se>2002-08-13 20:58:03 +0000
commitc9ebbaf07eb007f9ff4dc20ab741174131d346a7 (patch)
tree54bffb5c03906647d4f4d708ad8440933c30b042
parentf385e36a05966e0df8da1f8cf1222fd42171500f (diff)
downloadrockbox-c9ebbaf07eb007f9ff4dc20ab741174131d346a7.tar.gz
rockbox-c9ebbaf07eb007f9ff4dc20ab741174131d346a7.zip
Replaced busy loop with sleep()
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@1724 a1c6a512-1295-4272-9138-f99709370657
-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);