diff options
| author | Sadeep Madurange <sadeep@asciimx.com> | 2025-04-06 12:01:05 +0800 |
|---|---|---|
| committer | Sadeep Madurange <sadeep@asciimx.com> | 2025-04-06 12:02:57 +0800 |
| commit | e34917da814c2cdb3710553d479df0aed3979e28 (patch) | |
| tree | 6123fcfca767bae09e9ecb26feb24f033ab64fdc /recv.c | |
| parent | fd373e4cdf77c09e71f8c708d4e353f9091f36e4 (diff) | |
| download | avr-nrf24l01-driver-e34917da814c2cdb3710553d479df0aed3979e28.tar.gz | |
Recv data reliably, but PDLEN value is wrong.
Diffstat (limited to 'recv.c')
| -rw-r--r-- | recv.c | 16 |
1 files changed, 9 insertions, 7 deletions
@@ -1,6 +1,7 @@ #include <stdint.h> #include <string.h> #include <avr/interrupt.h> +#include <util/delay.h> #include "nrfm.h" #include "uart.h" @@ -36,14 +37,17 @@ int main(void) for (;;) { if (rxdr) { + uart_write_line("IRQ recv, reading data"); n = radio_recv(buf, MAXPDLEN); buf[n] = '\0'; rxdr = 0; - uart_write("INFO: "); - uart_write_line(buf); - - radio_listen(); - sei(); + if (n > 0) { + uart_write("INFO: "); + uart_write_line(buf); + } + } else { + uart_write_line("No IRQ"); + _delay_ms(2000); } } @@ -52,7 +56,5 @@ int main(void) ISR(RX_PCINTVEC) { - cli(); - uart_write_line("IRQ detected"); rxdr = 1; } |
