#include #include #include "radio_hw_instance.hpp" static volatile bool can_send_uart = true; static void tx_cb_USART_0(const struct usart_async_descriptor* const io_descr) { can_send_uart = true; } int main(void) { /* Initializes MCU, drivers and middleware */ atmel_start_init(); gpio_set_pin_level(OUT_LED_TX, false); struct io_descriptor* usart_io = NULL; usart_async_register_callback(&USART_0, USART_ASYNC_TXC_CB, tx_cb_USART_0); usart_async_get_io_descriptor(&USART_0, &usart_io); usart_async_enable(&USART_0); radio::HwInstance* radio_hw = radio::HwInstance::create_instance(); /* Replace with your application code */ while (1) { gpio_toggle_pin_level(OUT_LED_RX); uint8_t uart_data[12] = { 0 }; if (can_send_uart) { can_send_uart = false; const int16_t radio_num = radio_hw->register_read(0x1C); std::sprintf((char*)uart_data, "%d\n\r", radio_num); io_write(usart_io, uart_data, 12); gpio_toggle_pin_level(OUT_LED_TX); } delay_ms(1000); } }