49 lines
1.0 KiB
C++
49 lines
1.0 KiB
C++
#include <atmel_start.h>
|
|
|
|
#include <cstdio>
|
|
|
|
#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);
|
|
}
|
|
}
|