diff options
| author | Sadeep Madurange <sadeep@asciimx.com> | 2025-04-11 13:25:11 +0800 |
|---|---|---|
| committer | Sadeep Madurange <sadeep@asciimx.com> | 2025-04-11 13:25:11 +0800 |
| commit | 52112f19821f6f667c51f3ac2c68da41365e0b43 (patch) | |
| tree | 7747b55922d76d435ea2b528f87201950a14b5e2 /ding.c | |
| parent | 7b9d39da831a6454eb0eb57bbfa86ff2d615d287 (diff) | |
| download | avr-nrf24l01-driver-52112f19821f6f667c51f3ac2c68da41365e0b43.tar.gz | |
wip: some packets are being exchanged, after about 3 packets they fail (WDT)
Diffstat (limited to 'ding.c')
| -rw-r--r-- | ding.c | 43 |
1 files changed, 38 insertions, 5 deletions
@@ -1,6 +1,7 @@ #include <stdint.h> #include <string.h> +#include <avr/interrupt.h> #include <avr/wdt.h> #include <util/delay.h> @@ -8,24 +9,56 @@ #include "uart.h" #include "util.h" +#define RX_PIN PD7 +#define RX_DDR DDRD +#define RX_PORT PORTD +#define RX_PCIE PCIE2 +#define RX_PCINT PCINT23 +#define RX_PCMSK PCMSK2 +#define RX_PCINTVEC PCINT2_vect + +static volatile int rxdr = 0; + int main(void) { - const char *s = "hello world!"; - uint8_t slen = strlen(s); + uint8_t n; + char buf[MAXPDLEN + 1]; uint8_t rxaddr[ADDRLEN] = { 194, 178, 82 }; uint8_t txaddr[ADDRLEN] = { 194, 178, 83 }; - wdt_init(); + //wdt_stop(); uart_init(); radio_init(rxaddr); radio_print_config(); + sei(); + radio_listen(); + + _delay_ms(2000); + radio_sendto(txaddr, "SYN", 3); + for (;;) { - radio_sendto(txaddr, s, slen); - wdt_reset(); + if (rxdr) { + n = radio_recv(buf, MAXPDLEN); + buf[n] = '\0'; + rxdr = 0; + if (strncmp(buf, "ACK", 3) == 0) { + uart_write("INFO: "); + uart_write_line(buf); + } + } else { + uart_write_line("No IRQ"); + } + _delay_ms(2000); + radio_sendto(txaddr, "SYN", 3); } return 0; } + +ISR(RX_PCINTVEC) +{ + rxdr = 1; +} |
