X-Git-Url: https://git.gag.com/?a=blobdiff_plain;f=src%2Fdrivers%2Fao_cc1120.c;h=07ebf8356cf5f3e108d4eaa202fd64e19d840d03;hb=1c091062696f541168b91fcfa18ed25519aa6fe5;hp=bad0c856288112dcd7653f81795b250f5844cf8c;hpb=370d42ab1446d025bf0de466fdada3ee3d533009;p=fw%2Faltos 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) {