diff options
| author | Sadeep Madurange <sadeep@asciimx.com> | 2025-04-02 10:57:18 +0800 |
|---|---|---|
| committer | Sadeep Madurange <sadeep@asciimx.com> | 2025-04-02 10:57:18 +0800 |
| commit | 5fa09e0eb3a2099eff04434d7d6bb1d3d655ae78 (patch) | |
| tree | 95875e2635913f11e500266fe194ba4529928f02 /nrfm.c | |
| parent | c354dd7324fc4d5fa25fd5f9d33408bef42ad98c (diff) | |
| download | avr-nrf24l01-driver-5fa09e0eb3a2099eff04434d7d6bb1d3d655ae78.tar.gz | |
Fix batching logic.
Diffstat (limited to 'nrfm.c')
| -rw-r--r-- | nrfm.c | 6 |
1 files changed, 4 insertions, 2 deletions
@@ -187,7 +187,7 @@ void radio_init(const uint8_t rxaddr[ADDRLEN]) void radio_sendto(const uint8_t addr[ADDRLEN], const void *msg, uint8_t n) { - uint8_t i, j; + uint8_t i, j, j0; enable_tx(); reset_irqs(); @@ -201,7 +201,9 @@ void radio_sendto(const uint8_t addr[ADDRLEN], const void *msg, uint8_t n) SPDR = 0b10100000; while (!(SPSR & (1 << SPIF))) ; - for (j = MAXPDLEN - 1 + i; j >= i * MAXPDLEN; j--) { + + j0 = ((i + 1) * MAXPDLEN) - 1; + for (j = n - 1 < j0 ? n - 1 : j0; j >= i * MAXPDLEN; j--) { SPDR = ((uint8_t *)msg)[j]; while (!(SPSR & (1 << SPIF))) ; |
