diff options
| author | Sadeep Madurange <sadeep@asciimx.com> | 2025-04-03 18:00:26 +0800 |
|---|---|---|
| committer | Sadeep Madurange <sadeep@asciimx.com> | 2025-04-03 18:00:26 +0800 |
| commit | 0727556315b67d7eeff9c632f2f576427ae1491d (patch) | |
| tree | 689004fc46dc12296d5b889f49f39be83371b991 /recv.c | |
| parent | 50ffb4ead7293067144496894822436ba098656a (diff) | |
| download | avr-nrf24l01-driver-0727556315b67d7eeff9c632f2f576427ae1491d.tar.gz | |
Read data outside of IRQ handler.
Diffstat (limited to 'recv.c')
| -rw-r--r-- | recv.c | 32 |
1 files changed, 17 insertions, 15 deletions
@@ -13,8 +13,13 @@ #define RX_PCMSK PCMSK2 #define RX_PCINTVEC PCINT2_vect +static int rxdr = 0; + int main(void) { + uint8_t n; + char buf[MAXPDLEN + 1]; + uint8_t rxaddr[] = { 194, 178, 83 }; RX_DDR &= ~(1 << RX_PIN); @@ -29,25 +34,22 @@ int main(void) sei(); radio_listen(); - for (;;) - ; + for (;;) { + if (rxdr) { + cli(); + n = radio_recv(buf, MAXPDLEN); + buf[n] = '\0'; + uart_write("INFO: "); + uart_write_line(buf); + rxdr = 0; + sei(); + } + } return 0; } ISR(RX_PCINTVEC) { - uint8_t n; - char buf[MAXPDLEN + 1]; - - cli(); - - uart_write_line("DEBUG: Pin change IRQ"); - - n = radio_recv(buf, MAXPDLEN); - buf[n] = '\0'; - uart_write("INFO: "); - uart_write_line(buf); - - sei(); + rxdr = 1; } |
