X-Git-Url: https://git.gag.com/?a=blobdiff_plain;f=src%2Fdrivers%2Fao_packet_master.c;h=d6c99cbd89defb62b07a2def1b7964f8be2f9df9;hb=fb0fb6f4beab484e7fe55b39d18c1f19778f1211;hp=e97a66488ce11116f9f11694d38b68ca359abc47;hpb=846a6298e4a8bfbe87bb24d7b0802c0bf6f233be;p=fw%2Faltos diff --git a/src/drivers/ao_packet_master.c b/src/drivers/ao_packet_master.c index e97a6648..d6c99cbd 100644 --- a/src/drivers/ao_packet_master.c +++ b/src/drivers/ao_packet_master.c @@ -18,10 +18,15 @@ #include "ao.h" static char -ao_packet_getchar(void) __critical +ao_packet_getchar(void) { - char c; - while ((c = ao_packet_pollchar()) == AO_READ_AGAIN) { + int c; + + /* No need to block interrupts in this function as + * all packet variables are only modified from task + * context, not an interrupt handler + */ + while ((c = _ao_packet_pollchar()) == AO_READ_AGAIN) { if (!ao_packet_enable) break; if (ao_packet_master_sleeping) @@ -35,7 +40,7 @@ ao_packet_getchar(void) __critical static void ao_packet_echo(void) __reentrant { - char c; + int c; while (ao_packet_enable) { c = ao_packet_getchar(); if (c != AO_READ_AGAIN) @@ -140,7 +145,7 @@ ao_packet_forward(void) __reentrant static void ao_packet_signal(void) { - printf ("RSSI: %d\n", AO_RSSI_FROM_RADIO(ao_packet_last_rssi)); + printf ("RSSI: %d\n", ao_radio_rssi); } __code struct ao_cmds ao_packet_master_cmds[] = {