Use ao_radio_done to wait for TX to completely finish with packet
[fw/altos] / src / ao_packet.c
index 7d277d70594e9f3cbfa6471f43995216ad9e950f..da33bb4c6dfc8d4e92cf59ec4f94af46ab2f27e4 100644 (file)
@@ -34,6 +34,7 @@ ao_packet_send(void)
        ao_config_get();
        ao_mutex_get(&ao_radio_mutex);
        ao_radio_idle();
        ao_config_get();
        ao_mutex_get(&ao_radio_mutex);
        ao_radio_idle();
+       ao_radio_done = 0;
        RF_CHANNR = ao_config.radio_channel;
        ao_dma_set_transfer(ao_radio_dma,
                            &tx_packet,
        RF_CHANNR = ao_config.radio_channel;
        ao_dma_set_transfer(ao_radio_dma,
                            &tx_packet,
@@ -47,8 +48,8 @@ ao_packet_send(void)
                            DMA_CFG1_PRIORITY_HIGH);
        ao_dma_start(ao_radio_dma);
        RFST = RFST_STX;
                            DMA_CFG1_PRIORITY_HIGH);
        ao_dma_start(ao_radio_dma);
        RFST = RFST_STX;
-       __critical while (!ao_radio_dma_done)
-               ao_sleep(&ao_radio_dma_done);
+       __critical while (!ao_radio_done)
+               ao_sleep(&ao_radio_done);
        ao_mutex_put(&ao_radio_mutex);
 }
 
        ao_mutex_put(&ao_radio_mutex);
 }