projects
/
fw
/
altos
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
altos: Make ao_gps_print deal with telem containing 32-bit altitude values
[fw/altos]
/
src
/
cc1111
/
ao_serial.c
diff --git
a/src/cc1111/ao_serial.c
b/src/cc1111/ao_serial.c
index d5431070d7b430ab8a2095460855a353ea2db3c3..81727836d260e84ab88f3a1ae78c559296d9a525 100644
(file)
--- a/
src/cc1111/ao_serial.c
+++ b/
src/cc1111/ao_serial.c
@@
-34,8
+34,14
@@
const __code struct ao_serial_speed ao_serial_speeds[] = {
/* .baud = */ 59,
/* .gcr = */ (11 << UxGCR_BAUD_E_SHIFT) | UxGCR_ORDER_LSB
},
/* .baud = */ 59,
/* .gcr = */ (11 << UxGCR_BAUD_E_SHIFT) | UxGCR_ORDER_LSB
},
+ /* [AO_SERIAL_SPEED_115200] = */ {
+ /* .baud = */ 59,
+ /* .gcr = */ (12 << UxGCR_BAUD_E_SHIFT) | UxGCR_ORDER_LSB
+ },
};
};
+#define AO_SERIAL_SPEED_MAX AO_SERIAL_SPEED_115200
+
#if HAS_SERIAL_0
volatile __xdata struct ao_fifo ao_serial0_rx_fifo;
#if HAS_SERIAL_0
volatile __xdata struct ao_fifo ao_serial0_rx_fifo;
@@
-85,10
+91,10
@@
ao_serial0_getchar(void) __critical
}
#if USE_SERIAL_0_STDIN
}
#if USE_SERIAL_0_STDIN
-char
-ao_serial0_pollchar(void) __critical
+int
+_ao_serial0_pollchar(void)
{
{
-
char
c;
+
uint8_t
c;
if (ao_fifo_empty(ao_serial0_rx_fifo))
return AO_READ_AGAIN;
ao_fifo_remove(ao_serial0_rx_fifo,c);
if (ao_fifo_empty(ao_serial0_rx_fifo))
return AO_READ_AGAIN;
ao_fifo_remove(ao_serial0_rx_fifo,c);
@@
-116,7
+122,7
@@
void
ao_serial0_set_speed(uint8_t speed)
{
ao_serial0_drain();
ao_serial0_set_speed(uint8_t speed)
{
ao_serial0_drain();
- if (speed > AO_SERIAL_SPEED_
57600
)
+ if (speed > AO_SERIAL_SPEED_
MAX
)
return;
U0UCR |= UxUCR_FLUSH;
U0BAUD = ao_serial_speeds[speed].baud;
return;
U0UCR |= UxUCR_FLUSH;
U0BAUD = ao_serial_speeds[speed].baud;
@@
-135,7
+141,7
@@
ao_serial1_rx_isr(void) __interrupt 3
if (!ao_fifo_full(ao_serial1_rx_fifo))
ao_fifo_insert(ao_serial1_rx_fifo, U1DBUF);
ao_wakeup(&ao_serial1_rx_fifo);
if (!ao_fifo_full(ao_serial1_rx_fifo))
ao_fifo_insert(ao_serial1_rx_fifo, U1DBUF);
ao_wakeup(&ao_serial1_rx_fifo);
-#if USE_SERIAL1_STDIN
+#if USE_SERIAL
_
1_STDIN
ao_wakeup(&ao_stdin_ready);
#endif
}
ao_wakeup(&ao_stdin_ready);
#endif
}
@@
-173,10
+179,10
@@
ao_serial1_getchar(void) __critical
}
#if USE_SERIAL_1_STDIN
}
#if USE_SERIAL_1_STDIN
-char
-ao_serial1_pollchar(void) __critical
+int
+_ao_serial1_pollchar(void)
{
{
-
char
c;
+
uint8_t
c;
if (ao_fifo_empty(ao_serial1_rx_fifo))
return AO_READ_AGAIN;
ao_fifo_remove(ao_serial1_rx_fifo,c);
if (ao_fifo_empty(ao_serial1_rx_fifo))
return AO_READ_AGAIN;
ao_fifo_remove(ao_serial1_rx_fifo,c);
@@
-204,7
+210,7
@@
void
ao_serial1_set_speed(uint8_t speed)
{
ao_serial1_drain();
ao_serial1_set_speed(uint8_t speed)
{
ao_serial1_drain();
- if (speed > AO_SERIAL_SPEED_
57600
)
+ if (speed > AO_SERIAL_SPEED_
MAX
)
return;
U1UCR |= UxUCR_FLUSH;
U1BAUD = ao_serial_speeds[speed].baud;
return;
U1UCR |= UxUCR_FLUSH;
U1BAUD = ao_serial_speeds[speed].baud;
@@
-265,7
+271,7
@@
ao_serial_init(void)
IEN0 |= IEN0_URX0IE;
IEN2 |= IEN2_UTX0IE;
#if USE_SERIAL_0_STDIN && !DELAY_SERIAL_0_STDIN
IEN0 |= IEN0_URX0IE;
IEN2 |= IEN2_UTX0IE;
#if USE_SERIAL_0_STDIN && !DELAY_SERIAL_0_STDIN
- ao_add_stdio(ao_serial0_pollchar,
+ ao_add_stdio(
_
ao_serial0_pollchar,
ao_serial0_putchar,
NULL);
#endif
ao_serial0_putchar,
NULL);
#endif
@@
-292,7
+298,9
@@
ao_serial_init(void)
/* Make the USART pins be controlled by the USART */
P1SEL |= (1 << 6) | (1 << 7);
/* Make the USART pins be controlled by the USART */
P1SEL |= (1 << 6) | (1 << 7);
+#if HAS_SERIAL_1_HW_FLOW
P1SEL |= (1 << 5) | (1 << 4);
P1SEL |= (1 << 5) | (1 << 4);
+#endif
#endif
/* UART mode with receiver enabled */
#endif
/* UART mode with receiver enabled */
@@
-319,7
+327,7
@@
ao_serial_init(void)
IEN2 |= IEN2_UTX1IE;
#if USE_SERIAL_1_STDIN && !DELAY_SERIAL_1_STDIN
IEN2 |= IEN2_UTX1IE;
#if USE_SERIAL_1_STDIN && !DELAY_SERIAL_1_STDIN
- ao_add_stdio(ao_serial1_pollchar,
+ ao_add_stdio(
_
ao_serial1_pollchar,
ao_serial1_putchar,
NULL);
#endif
ao_serial1_putchar,
NULL);
#endif