From cde3ab89cf48d246e1ae81fdcdbbed1234d225aa Mon Sep 17 00:00:00 2001 From: Sadeep Madurange Date: Sun, 24 Nov 2024 11:53:53 +0800 Subject: Send data. --- rf_test/rfm.c | 25 +++++++++++++++++++++++-- 1 file changed, 23 insertions(+), 2 deletions(-) diff --git a/rf_test/rfm.c b/rf_test/rfm.c index 4928c4d..ab511ef 100644 --- a/rf_test/rfm.c +++ b/rf_test/rfm.c @@ -58,7 +58,6 @@ static inline void write_reg(uint8_t reg, uint8_t val) static inline void set_mode(uint8_t mode) { write_reg(0x01, mode); - while (!read_reg(0x27)) ; } @@ -82,6 +81,28 @@ void rfm_init(uint8_t addr) write_reg(0x3D, 0x02); } -void rfm_send(uint8_t addr, uint8_t data) +void rfm_send(uint8_t addr, uint8_t *data, uint8_t n) { + uint8_t i; + + set_mode(STDBY_MODE); + + SS_PORT |= (1 << SS_PIN); + + SPDR = 0x7F; + while (!(SPSR & (1 << SPIF))) + ; + + for (i = 0; i < n; i++) { + SPDR = data[i]; + while (!(SPSR & (1 << SPIF))) + ; + } + + SS_PORT &= ~(1 << SS_PIN); + + set_mode(TX_MODE); + + while (!((read_reg(0x28) >> 3) & 1)) + ; } -- cgit v1.2.3