projects
/
fw
/
altos
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
altos: Add support for UART0 in async mode
[fw/altos]
/
src
/
cc1111
/
ao_packet_master.c
diff --git
a/src/cc1111/ao_packet_master.c
b/src/cc1111/ao_packet_master.c
index b0fdf5a8804288386651c070ba6f5be8f7f703fc..66f94288fabd5cd6a0888907344f6a58c2ca1bf2 100644
(file)
--- a/
src/cc1111/ao_packet_master.c
+++ b/
src/cc1111/ao_packet_master.c
@@
-80,13
+80,16
@@
ao_packet_master(void)
ao_packet_master_time = ao_time();
ao_packet_master_delay = AO_PACKET_MASTER_DELAY_SHORT;
while (ao_packet_enable) {
ao_packet_master_time = ao_time();
ao_packet_master_delay = AO_PACKET_MASTER_DELAY_SHORT;
while (ao_packet_enable) {
- memcpy(ao_tx_packet.callsign, ao_config.callsign, AO_MAX_CALLSIGN);
+ uint8_t r;
+ ao_xmemcpy(ao_tx_packet.callsign, ao_config.callsign, AO_MAX_CALLSIGN);
ao_packet_send();
if (ao_tx_packet.len)
ao_packet_master_busy();
ao_packet_master_check_busy();
ao_alarm(ao_packet_master_delay);
ao_packet_send();
if (ao_tx_packet.len)
ao_packet_master_busy();
ao_packet_master_check_busy();
ao_alarm(ao_packet_master_delay);
- if (ao_packet_recv()) {
+ r = ao_packet_recv();
+ ao_clear_alarm();
+ if (r) {
/* if we can transmit data, do so */
if (ao_packet_tx_used && ao_tx_packet.len == 0)
continue;
/* if we can transmit data, do so */
if (ao_packet_tx_used && ao_tx_packet.len == 0)
continue;
@@
-95,6
+98,7
@@
ao_packet_master(void)
ao_packet_master_sleeping = 1;
ao_alarm(ao_packet_master_delay);
ao_sleep(&ao_packet_master_sleeping);
ao_packet_master_sleeping = 1;
ao_alarm(ao_packet_master_delay);
ao_sleep(&ao_packet_master_sleeping);
+ ao_clear_alarm();
ao_packet_master_sleeping = 0;
}
}
ao_packet_master_sleeping = 0;
}
}
@@
-110,7
+114,7
@@
ao_packet_forward(void) __reentrant
flush();
#if HAS_MONITOR
flush();
#if HAS_MONITOR
- ao_
set_monitor(0
);
+ ao_
monitor_disable(
);
#endif
ao_add_task(&ao_packet_task, ao_packet_master, "master");
ao_add_task(&ao_packet_echo_task, ao_packet_echo, "echo");
#endif
ao_add_task(&ao_packet_task, ao_packet_master, "master");
ao_add_task(&ao_packet_echo_task, ao_packet_echo, "echo");
@@
-128,6
+132,9
@@
ao_packet_forward(void) __reentrant
ao_wakeup(&ao_stdin_ready);
ao_delay(AO_MS_TO_TICKS(10));
}
ao_wakeup(&ao_stdin_ready);
ao_delay(AO_MS_TO_TICKS(10));
}
+#if HAS_MONITOR
+ ao_monitor_enable();
+#endif
}
}