diff options
| author | Sadeep Madurange <sadeep@asciimx.com> | 2025-04-02 10:06:35 +0800 |
|---|---|---|
| committer | Sadeep Madurange <sadeep@asciimx.com> | 2025-04-02 10:06:35 +0800 |
| commit | 8015307cdbeae99049b5e430152fcacf008056b2 (patch) | |
| tree | f779fbf3260afb607087cbf074606d2734fc05fd | |
| parent | 7ec3e7cceb93228316d83f6f54763f1d7d514a41 (diff) | |
| download | avr-nrf24l01-driver-8015307cdbeae99049b5e430152fcacf008056b2.tar.gz | |
Power up and enable TX.
| -rw-r--r-- | nrfm.c | 26 |
1 files changed, 15 insertions, 11 deletions
@@ -27,13 +27,15 @@ #define NRF_IRQ_PCMSK PCMSK2 #define NRF_IRQ_PCINTVEC PCINT2_vect -#define NRF_NOP 0xFF -#define NRF_R_REGISTER 0x1F -#define NRF_W_REGISTER 0x20 +#define NRF_NOP 0xFF +#define NRF_R_REGISTER 0x1F +#define NRF_W_REGISTER 0x20 -#define MAXPDLEN 32 +#define NRF_PWR_UP 1 +#define NRF_PRIM_RX 0 -#define LEN(a) (sizeof(a) / sizeof(a[0])) +#define MAXPDLEN 32 +#define LEN(a) (sizeof(a) / sizeof(a[0])) const char *bittab[16] = { [ 0] = "0000", [ 1] = "0001", [ 2] = "0010", [ 3] = "0011", @@ -158,14 +160,16 @@ void radio_sendto(const uint8_t addr[ADDRLEN], const void *msg, uint8_t n) { uint8_t i, rv; - if (n > MAXPDLEN) - n = MAXPDLEN; - - rv = read_reg(0x00) & ~1; - write_reg(0x00, rv); + rv = read_reg(0x00); + if ((rv & 0x03) != 0x02) { + rv |= (1 << NRF_PWR_UP); /* power up */ + rv &= ~(1 << NRF_PRIM_RX); /* enable tx mode */ + write_reg(0x00, rv); + _delay_us(1500); + } rv = read_reg(0x07); - if (rv & 0x10) + if (rv & 0b00010000) write_reg(0x07, rv); setaddr(0x10, addr); |
