summaryrefslogtreecommitdiffstats
path: root/recv.c
diff options
context:
space:
mode:
authorSadeep Madurange <sadeep@asciimx.com>2025-04-06 12:01:05 +0800
committerSadeep Madurange <sadeep@asciimx.com>2025-04-06 12:02:57 +0800
commite34917da814c2cdb3710553d479df0aed3979e28 (patch)
tree6123fcfca767bae09e9ecb26feb24f033ab64fdc /recv.c
parentfd373e4cdf77c09e71f8c708d4e353f9091f36e4 (diff)
downloadavr-nrf24l01-driver-e34917da814c2cdb3710553d479df0aed3979e28.tar.gz
Recv data reliably, but PDLEN value is wrong.
Diffstat (limited to 'recv.c')
-rw-r--r--recv.c16
1 files changed, 9 insertions, 7 deletions
diff --git a/recv.c b/recv.c
index 7217e47..70006dc 100644
--- a/recv.c
+++ b/recv.c
@@ -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;
}