diff options
| author | Sadeep Madurange <sadeep@asciimx.com> | 2025-03-16 15:26:18 +0800 |
|---|---|---|
| committer | Sadeep Madurange <sadeep@asciimx.com> | 2025-03-16 15:26:18 +0800 |
| commit | da646ed6b967b70ff515cc45d731f8ec9739a204 (patch) | |
| tree | 10069ea07b7ae64e1b836410b0049cb8d32ee2e5 | |
| parent | 05a9278caf38f5461f3aefccc1f871ae5d54d9ae (diff) | |
| download | avr-nrf24l01-driver-da646ed6b967b70ff515cc45d731f8ec9739a204.tar.gz | |
Remove bulk write code, basic config is still unreliable.
| -rw-r--r-- | main.c | 55 |
1 files changed, 2 insertions, 53 deletions
@@ -18,12 +18,6 @@ #define NRF_IRQ PD7 -struct radio_cfg { - uint8_t netid; - uint8_t nodeid; - uint8_t pipeid; -}; - const char *bittab[16] = { [ 0] = "0000", [ 1] = "0001", [ 2] = "0010", [ 3] = "0011", [ 4] = "0100", [ 5] = "0101", [ 6] = "0110", [ 7] = "0111", @@ -63,39 +57,6 @@ static inline void write_reg(uint8_t reg, uint8_t val) write_reg_check(reg, val, val); } -static inline void read_reg_bulk(uint8_t reg, uint8_t *data, uint8_t n) -{ - uint8_t i; - - SPI_PORT &= ~(1 << SPI_SS); - SPDR = reg & 0x1F; - while (!(SPSR & (1 << SPIF))) - ; - for (i = 0; i < n; i++) { - SPDR = 0xFF; - while (!(SPSR & (1 << SPIF))) - ; - data[i] = SPDR; - } - SPI_PORT |= (1 << SPI_SS); -} - -static inline void write_reg_bulk(uint8_t reg, uint8_t *data, uint8_t n) -{ - uint8_t i; - - SPI_PORT &= ~(1 << SPI_SS); - SPDR = (reg & 0x1F) | 0x20; - while (!(SPSR & (1 << SPIF))) - ; - for (i = 0; i < n; i++) { - SPDR = data[i]; - while (!(SPSR & (1 << SPIF))) - ; - } - SPI_PORT |= (1 << SPI_SS); -} - static inline void print_config(void) { char s[22]; @@ -117,10 +78,8 @@ static inline void print_config(void) } } -void radio_init(struct radio_cfg *cfg) +void radio_init(void) { - uint8_t rx_addr[3]; - SPI_DDR |= (1 << SPI_SS) | (1 << SPI_SCK) | (1 << SPI_MOSI); SPI_PORT |= (1 << SPI_SS); SPCR |= (1 << SPE) | (1 << MSTR); @@ -139,22 +98,12 @@ void radio_init(struct radio_cfg *cfg) write_reg(0x06, 0b00001110); /* set data rate to 1Mbps */ write_reg_check(0x07, 0b01110000, 0b00001110); /* clear rx, tx, max_rt interrupts */ - - rx_addr[0] = cfg->pipeid; - rx_addr[1] = cfg->nodeid; - rx_addr[2] = cfg->netid; - write_reg_bulk(0x0A, rx_addr, (sizeof(rx_addr) / sizeof(rx_addr[0]))); } int main(void) { - struct radio_cfg cfg; - cfg.netid = 0; - cfg.nodeid = 0; - cfg.pipeid = 0; - uart_init(); - radio_init(&cfg); + radio_init(); print_config(); return 0; |
