summaryrefslogtreecommitdiff
path: root/firmware/target/arm/olympus/mrobe-500/button-mr500.c
diff options
context:
space:
mode:
authorJonathan Gordon <rockbox@jdgordon.info>2007-09-30 08:18:46 +0000
committerJonathan Gordon <rockbox@jdgordon.info>2007-09-30 08:18:46 +0000
commita5e788fe8533f6172b3d6b52d2430fe163f7a6fd (patch)
tree3c02a246e903d743126658bfb94bbacbdeba8fc4 /firmware/target/arm/olympus/mrobe-500/button-mr500.c
parentf548336e271f970d7ccd8a84e85ce8590ff7deab (diff)
downloadrockbox-a5e788fe8533f6172b3d6b52d2430fe163f7a6fd.tar.gz
rockbox-a5e788fe8533f6172b3d6b52d2430fe163f7a6fd.zip
slow - but working - IRQ based uart/button driver.
change some of the uart function names from CamelCase git-svn-id: svn://svn.rockbox.org/rockbox/trunk@14908 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'firmware/target/arm/olympus/mrobe-500/button-mr500.c')
-rw-r--r--firmware/target/arm/olympus/mrobe-500/button-mr500.c14
1 files changed, 5 insertions, 9 deletions
diff --git a/firmware/target/arm/olympus/mrobe-500/button-mr500.c b/firmware/target/arm/olympus/mrobe-500/button-mr500.c
index 7410875fd1..1d0d2714a8 100644
--- a/firmware/target/arm/olympus/mrobe-500/button-mr500.c
+++ b/firmware/target/arm/olympus/mrobe-500/button-mr500.c
@@ -37,7 +37,7 @@
37void button_init_device(void) 37void button_init_device(void)
38{ 38{
39 /* GIO is the power button, set as input */ 39 /* GIO is the power button, set as input */
40 IO_GIO_DIR0|=0x01; 40 IO_GIO_DIR0 |= 0x01;
41} 41}
42 42
43inline bool button_hold(void) 43inline bool button_hold(void)
@@ -48,20 +48,17 @@ inline bool button_hold(void)
48int button_read_device(void) 48int button_read_device(void)
49{ 49{
50 char data[5], c; 50 char data[5], c;
51 int val;
52 int i = 0; 51 int i = 0;
53 int btn = BUTTON_NONE, timeout = BUTTON_TIMEOUT; 52 int btn = BUTTON_NONE;
54 53
55 if ((IO_GIO_BITSET0&0x01) == 0) 54 if ((IO_GIO_BITSET0&0x01) == 0)
56 btn |= BUTTON_POWER; 55 btn |= BUTTON_POWER;
57 56
58 uartHeartbeat(); 57 uart1_heartbeat();
59 while (timeout > 0) 58 while (uartAvailable())
60 { 59 {
61 val = uartPollch(BUTTON_TIMEOUT*100); 60 if (uart1_getch(&c))
62 if (val > -1)
63 { 61 {
64 c = val&0xff;
65 if (i && (data[0] == BUTTON_START_BYTE || data[0] == BUTTON_START_BYTE2)) 62 if (i && (data[0] == BUTTON_START_BYTE || data[0] == BUTTON_START_BYTE2))
66 { 63 {
67 data[i++] = c; 64 data[i++] = c;
@@ -94,7 +91,6 @@ int button_read_device(void)
94 break; 91 break;
95 } 92 }
96 } 93 }
97 timeout--;
98 } 94 }
99 return btn; 95 return btn;
100} 96}