From 50ffb4ead7293067144496894822436ba098656a Mon Sep 17 00:00:00 2001 From: Sadeep Madurange Date: Thu, 3 Apr 2025 17:47:16 +0800 Subject: wip: rx. --- recv.c | 53 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 53 insertions(+) create mode 100644 recv.c (limited to 'recv.c') diff --git a/recv.c b/recv.c new file mode 100644 index 0000000..dc5aa44 --- /dev/null +++ b/recv.c @@ -0,0 +1,53 @@ +#include +#include +#include + +#include "nrfm.h" +#include "uart.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 + +int main(void) +{ + uint8_t rxaddr[] = { 194, 178, 83 }; + + RX_DDR &= ~(1 << RX_PIN); + RX_PORT &= ~(1 << RX_PIN); + PCICR |= (1 << RX_PCIE); + RX_PCMSK |= (1 << RX_PCINT); + + uart_init(); + radio_init(rxaddr); + radio_print_config(); + + sei(); + radio_listen(); + + for (;;) + ; + + 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(); +} -- cgit v1.2.3