X-Git-Url: https://git.gag.com/?p=fw%2Faltos;a=blobdiff_plain;f=src%2Fdrivers%2Fao_cc1120.c;h=07ebf8356cf5f3e108d4eaa202fd64e19d840d03;hp=bad0c856288112dcd7653f81795b250f5844cf8c;hb=f09b2fc7fcfb1b3dcb1a46a8b9856092dd59866b;hpb=b878ca38045b1bee6ea4d649298727ac3fa197c2 diff --git a/src/drivers/ao_cc1120.c b/src/drivers/ao_cc1120.c index bad0c856..07ebf835 100644 --- a/src/drivers/ao_cc1120.c +++ b/src/drivers/ao_cc1120.c @@ -272,6 +272,8 @@ ao_radio_idle(void) uint8_t state = ao_radio_strobe(CC1120_SIDLE); if ((state >> CC1120_STATUS_STATE) == CC1120_STATUS_STATE_IDLE) break; + if ((state >> CC1120_STATUS_STATE) == CC1120_STATUS_STATE_TX_FIFO_ERROR) + ao_radio_strobe(CC1120_SFTX); } /* Flush any pending TX bytes */ ao_radio_strobe(CC1120_SFTX); @@ -715,11 +717,17 @@ ao_radio_send(const void *d, uint8_t size) uint8_t this_len; uint8_t started = 0; uint8_t fifo_space; + uint8_t q; encode_len = ao_fec_encode(d, size, tx_data); ao_radio_get(encode_len); + ao_radio_abort = 0; + + /* Flush any pending TX bytes */ + ao_radio_strobe(CC1120_SFTX); + started = 0; fifo_space = CC1120_FIFO_SIZE; while (encode_len) {