ao_packet_send(void)
{
ao_led_on(AO_LED_RED);
- ao_config_get();
- ao_mutex_get(&ao_radio_mutex);
+ ao_radio_get();
+
+ /* If any tx data is pending then copy it into the tx packet */
if (ao_packet_tx_used && ao_tx_packet.len == 0) {
memcpy(&ao_tx_packet.d, tx_data, ao_packet_tx_used);
ao_tx_packet.len = ao_packet_tx_used;
ao_packet_tx_used = 0;
ao_wakeup(&tx_data);
}
- ao_radio_idle();
ao_radio_done = 0;
- RF_CHANNR = ao_config.radio_channel;
ao_dma_set_transfer(ao_radio_dma,
&ao_tx_packet,
&RFDXADDR,
RFST = RFST_STX;
__critical while (!ao_radio_done)
ao_sleep(&ao_radio_done);
- ao_mutex_put(&ao_radio_mutex);
+ ao_radio_put();
ao_led_off(AO_LED_RED);
}
uint8_t dma_done;
ao_led_on(AO_LED_GREEN);
- ao_config_get();
- ao_mutex_get(&ao_radio_mutex);
- ao_radio_idle();
- RF_CHANNR = ao_config.radio_channel;
+ ao_radio_get();
ao_dma_set_transfer(ao_radio_dma,
&RFDXADDR,
&ao_rx_packet,
if (ao_sleep(&ao_radio_dma_done) != 0)
ao_radio_abort();
dma_done = ao_radio_dma_done;
- ao_mutex_put(&ao_radio_mutex);
+ ao_radio_put();
ao_led_off(AO_LED_GREEN);
if (dma_done & AO_DMA_DONE) {