projects
/
fw
/
altos
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
| inline |
side by side
(parent:
d7c2d35
)
Drain serial port before changing speed
author
Keith Packard
<keithp@keithp.com>
Sat, 18 Jul 2009 08:04:17 +0000
(
01:04
-0700)
committer
Keith Packard
<keithp@keithp.com>
Sat, 18 Jul 2009 08:04:17 +0000
(
01:04
-0700)
Signed-off-by: Keith Packard <keithp@keithp.com>
src/ao_serial.c
patch
|
blob
|
history
diff --git
a/src/ao_serial.c
b/src/ao_serial.c
index 7bc11b979ac38137abd5e62c4a263711c5f097bf..4155e776934ac59f196e67642aa23d462d011025 100644
(file)
--- a/
src/ao_serial.c
+++ b/
src/ao_serial.c
@@
-75,6
+75,13
@@
ao_serial_putchar(char c) __critical
ao_serial_tx1_start();
}
+static void
+ao_serial_drain(void) __critical
+{
+ while (!ao_fifo_empty(ao_usart1_tx_fifo))
+ ao_sleep(&ao_usart1_tx_fifo);
+}
+
static void
send_serial(void)
{
@@
-115,6
+122,9
@@
static const struct {
void
ao_serial_set_speed(uint8_t speed)
{
+ ao_serial_drain();
+ if (speed > AO_SERIAL_SPEED_57600)
+ return;
U1BAUD = ao_serial_speeds[speed].baud;
U1GCR = ao_serial_speeds[speed].gcr;
}