X-Git-Url: https://git.gag.com/?a=blobdiff_plain;f=src%2Fao_radio.c;h=cafa7010b0ab29e802d3694dcb2de187e102faf6;hb=adbb14c63d85b7a54223f88ac623571456f4a462;hp=b2105ff89c41e3add1f5a86aade8d650952ed953;hpb=54468e5dc567aaac5c5c20e921859b7cec28bb88;p=fw%2Faltos diff --git a/src/ao_radio.c b/src/ao_radio.c index b2105ff8..cafa7010 100644 --- a/src/ao_radio.c +++ b/src/ao_radio.c @@ -432,11 +432,8 @@ ao_radio_rdf(int ms) void ao_radio_abort(void) { - /* Only abort if a task is waiting to receive data */ - if (RFST == RFST_SRX) { - ao_dma_abort(ao_radio_dma); - ao_radio_idle(); - } + ao_dma_abort(ao_radio_dma); + ao_radio_idle(); } void @@ -452,26 +449,29 @@ void ao_radio_test(void) { uint8_t mode = 2; + static __xdata radio_on; ao_cmd_white(); if (ao_cmd_lex_c != '\n') { ao_cmd_decimal(); mode = (uint8_t) ao_cmd_lex_u32; } mode++; - if (mode & 2) { + if ((mode & 2) && !radio_on) { ao_set_monitor(0); ao_packet_slave_stop(); ao_radio_get(); RFST = RFST_STX; + radio_on = 1; } if (mode == 3) { printf ("Hit a character to stop..."); flush(); getchar(); putchar('\n'); } - if (mode & 1) { + if ((mode & 1) && radio_on) { ao_radio_idle(); ao_radio_put(); + radio_on = 0; } }