summaryrefslogtreecommitdiff
path: root/src/drivers/ao_btm.c
diff options
context:
space:
mode:
authorKeith Packard <keithp@keithp.com>2012-04-12 14:51:07 -0700
committerKeith Packard <keithp@keithp.com>2012-04-14 14:04:29 -0700
commit040a6eb119451026e1ec7c3a6a8e76b439c632d5 (patch)
treec334b0f83d8202626c544238b53def46339042b0 /src/drivers/ao_btm.c
parentf952f9c285e2718a433c8c720c9b5d9c369e7036 (diff)
altos: Massive product config cleanup
Support multiple serial ports more cleanly Split out parts of ao.h into separate feature header files Signed-off-by: Keith Packard <keithp@keithp.com>
Diffstat (limited to 'src/drivers/ao_btm.c')
-rw-r--r--src/drivers/ao_btm.c30
1 files changed, 18 insertions, 12 deletions
diff --git a/src/drivers/ao_btm.c b/src/drivers/ao_btm.c
index 5eb78815..f193ac8e 100644
--- a/src/drivers/ao_btm.c
+++ b/src/drivers/ao_btm.c
@@ -17,6 +17,13 @@
#include "ao.h"
+#ifndef ao_serial_btm_getchar
+#define ao_serial_btm_putchar ao_serial1_putchar
+#define ao_serial_btm_pollchar ao_serial1_pollchar
+#define ao_serial_btm_set_speed ao_serial1_set_speed
+#define ao_serial_btm_drain ao_serial1_drain
+#endif
+
int8_t ao_btm_stdio;
__xdata uint8_t ao_btm_connected;
@@ -80,9 +87,9 @@ ao_btm_speed(void)
{
ao_cmd_decimal();
if (ao_cmd_lex_u32 == 57600)
- ao_serial_set_speed(AO_SERIAL_SPEED_57600);
+ ao_serial_btm_set_speed(AO_SERIAL_SPEED_57600);
else if (ao_cmd_lex_u32 == 19200)
- ao_serial_set_speed(AO_SERIAL_SPEED_19200);
+ ao_serial_btm_set_speed(AO_SERIAL_SPEED_19200);
else
ao_cmd_status = ao_cmd_syntax_error;
}
@@ -104,8 +111,6 @@ __code struct ao_cmds ao_btm_cmds[] = {
#define AO_BTM_MAX_REPLY 16
__xdata char ao_btm_reply[AO_BTM_MAX_REPLY];
-extern volatile __xdata struct ao_fifo ao_usart1_rx_fifo;
-
/*
* Read a line of data from the serial port, truncating
* it after a few characters.
@@ -119,7 +124,7 @@ ao_btm_get_line(void)
for (;;) {
- while ((c = ao_serial_pollchar()) != AO_READ_AGAIN) {
+ while ((c = ao_serial_btm_pollchar()) != AO_READ_AGAIN) {
ao_btm_log_in_char(c);
if (ao_btm_reply_len < sizeof (ao_btm_reply))
ao_btm_reply[ao_btm_reply_len++] = c;
@@ -128,7 +133,7 @@ ao_btm_get_line(void)
}
for (c = 0; c < 10; c++) {
ao_delay(AO_MS_TO_TICKS(10));
- if (!ao_fifo_empty(ao_usart1_rx_fifo))
+ if (!ao_fifo_empty(ao_serial1_rx_fifo))
break;
}
if (c == 10)
@@ -168,7 +173,7 @@ void
ao_btm_putchar(char c)
{
ao_btm_log_out_char(c);
- ao_serial_putchar(c);
+ ao_serial_btm_putchar(c);
ao_delay(1);
}
@@ -229,8 +234,8 @@ ao_btm_set_name(void)
uint8_t
ao_btm_try_speed(uint8_t speed)
{
- ao_serial_set_speed(speed);
- ao_btm_drain();
+ ao_serial_btm_set_speed(speed);
+ ao_serial_btm_drain();
(void) ao_btm_cmd("\rATE0\rATQ0\r");
if (ao_btm_cmd("AT\r") == 1)
return 1;
@@ -274,8 +279,8 @@ ao_btm(void)
/* Turn off status reporting */
ao_btm_cmd("ATQ1\r");
- ao_btm_stdio = ao_add_stdio(ao_serial_pollchar,
- ao_serial_putchar,
+ ao_btm_stdio = ao_add_stdio(ao_serial_btm_pollchar,
+ ao_serial_btm_putchar,
NULL);
ao_btm_echo(0);
@@ -341,7 +346,8 @@ void
ao_btm_init (void)
{
ao_serial_init();
- ao_serial_set_speed(AO_SERIAL_SPEED_19200);
+
+ ao_serial_btm_set_speed(AO_SERIAL_SPEED_19200);
#if BT_LINK_ON_P1
/*