summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSadeep Madurange <sadeep@asciimx.com>2025-04-06 10:42:10 +0800
committerSadeep Madurange <sadeep@asciimx.com>2025-04-06 10:42:10 +0800
commitfd373e4cdf77c09e71f8c708d4e353f9091f36e4 (patch)
tree9d818992b0232c48fc6de93629e7cb9f708c31cb
parentf2801a35b43f4117d97dd4d8eba9db480454c9e3 (diff)
downloadavr-nrf24l01-driver-fd373e4cdf77c09e71f8c708d4e353f9091f36e4.tar.gz
Fix IRQ: active low.
-rw-r--r--nrfm.c12
-rw-r--r--recv.c3
-rw-r--r--send.c2
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);
}