From 793bd879dc0d544b84a8c61394cc472e1ff866db Mon Sep 17 00:00:00 2001 From: Sadeep Madurange Date: Sun, 16 Mar 2025 12:18:30 +0800 Subject: wip: config. --- main.c | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) (limited to 'main.c') diff --git a/main.c b/main.c index 0d4dd8d..a23bbfa 100644 --- a/main.c +++ b/main.c @@ -38,7 +38,7 @@ static inline uint8_t read_reg(uint8_t reg) return SPDR; } -static inline void write_reg(uint8_t reg, uint8_t val) +static inline void spi_write(uint8_t reg, uint8_t val) { SPI_PORT &= ~(1 << SPI_SS); SPDR = (reg & 0x1F) | 0x20; @@ -50,6 +50,14 @@ static inline void write_reg(uint8_t reg, uint8_t val) SPI_PORT |= (1 << SPI_SS); } +static inline void write_reg(uint8_t reg, uint8_t val) +{ + uint8_t i; + + for (i = 0; read_reg(reg) != val && i < 10; i++) + spi_write(reg, val); +} + static inline void print_config(void) { char s[22]; @@ -82,7 +90,7 @@ void radio_init(void) write_reg(0x01, 0b00111111); /* enable auto ack on all pipes */ write_reg(0x02, 0b00000001); /* enable rx address on pipe 0 */ write_reg(0x03, 0b00000001); /* set address width to 3 bytes */ - write_reg(0x04, 0b00000000); /* disable auto retransmission */ + write_reg(0x04, 0b00101111); /* 750uS retransmission delay, 15 tries */ write_reg(0x05, 0b01110011); /* use 2.515GHz channel */ write_reg(0x06, 0b00000110); /* set data rate to 1Mbps */ } -- cgit v1.2.3