From fd373e4cdf77c09e71f8c708d4e353f9091f36e4 Mon Sep 17 00:00:00 2001 From: Sadeep Madurange Date: Sun, 6 Apr 2025 10:42:10 +0800 Subject: Fix IRQ: active low. --- nrfm.c | 12 ++++++++++-- recv.c | 3 ++- send.c | 2 +- 3 files changed, 13 insertions(+), 4 deletions(-) diff --git a/nrfm.c b/nrfm.c index c3f8ec9..6f27a82 100644 --- a/nrfm.c +++ b/nrfm.c @@ -220,8 +220,9 @@ void radio_init(const uint8_t rxaddr[ADDRLEN]) void radio_sendto(const uint8_t addr[ADDRLEN], const char *msg, uint8_t n) { + char s[4]; uint8_t cfg; - uint8_t i, j, jmax; + int i, j, jmax; uint8_t rv, maxrt, txds; disable_chip(); @@ -235,6 +236,13 @@ void radio_sendto(const uint8_t addr[ADDRLEN], const char *msg, uint8_t n) setaddr(0x10, addr); setaddr(0x0A, addr); + uart_write("DEBUG: sending to "); + uart_write(itoa(addr[0], s, 10)); + uart_write("."); + uart_write(itoa(addr[1], s, 10)); + uart_write("."); + uart_write_line(itoa(addr[2], s, 10)); + for (i = 0; i < n; i += MAXPDLEN) { SPI_PORT &= ~(1 << SPI_SS); SPDR = 0b10100000; @@ -262,7 +270,7 @@ void radio_sendto(const uint8_t addr[ADDRLEN], const char *msg, uint8_t n) if (txds) uart_write_line("DEBUG: packet sent"); else if (maxrt) { - uart_write_line("ERROR: failed to send a packet"); + uart_write_line("ERROR: sendto() failed: MAX_RT"); break; } } diff --git a/recv.c b/recv.c index 31dbc0f..7217e47 100644 --- a/recv.c +++ b/recv.c @@ -23,7 +23,7 @@ int main(void) uint8_t rxaddr[] = { 194, 178, 83 }; RX_DDR &= ~(1 << RX_PIN); - RX_PORT &= ~(1 << RX_PIN); + RX_PORT |= (1 << RX_PIN); PCICR |= (1 << RX_PCIE); RX_PCMSK |= (1 << RX_PCINT); @@ -53,5 +53,6 @@ int main(void) ISR(RX_PCINTVEC) { cli(); + uart_write_line("IRQ detected"); rxdr = 1; } diff --git a/send.c b/send.c index 21ca541..5950ddc 100644 --- a/send.c +++ b/send.c @@ -19,7 +19,7 @@ int main(void) for (;;) { radio_sendto(txaddr, s, slen); - _delay_ms(1000); + _delay_ms(2000); } -- cgit v1.2.3