133 #define nRF24_ISR(nrf_object) Task_Queue( (task_t)nRF24_EventHandler, nrf_object)
173 #define EN_RXADDR 0x02
174 #define SETUP_AW 0x03
175 #define SETUP_RETR 0x04
177 #define RF_SETUP 0x06
179 #define OBSERVE_TX 0x08
181 #define RX_ADDR_P0 0x0A
182 #define RX_ADDR_P1 0x0B
183 #define RX_ADDR_P2 0x0C
184 #define RX_ADDR_P3 0x0D
185 #define RX_ADDR_P4 0x0E
186 #define RX_ADDR_P5 0x0F
188 #define RX_PW_P0 0x11
189 #define RX_PW_P1 0x12
190 #define RX_PW_P2 0x13
191 #define RX_PW_P3 0x14
192 #define RX_PW_P4 0x15
193 #define RX_PW_P5 0x16
194 #define FIFO_STATUS 0x17
199 #define RX_ADDR_BASE RX_ADDR_P0
201 #define AW_5B 0x03 // 5 byte address
202 #define AW_4B 0x02 // 4 byte address
203 #define AW_3B 0x01 // 3 byte address
207 #define MASK_RX_DR 0x40
208 #define MASK_TX_DS 0x20
209 #define MASK_MAX_RT 0x10
234 #define CONT_WAVE 0x80
235 #define RF_DR_LOW 0x20
236 #define PLL_LOCK 0x10
237 #define RF_DR_HIGH 0x08
238 #define RF_PA_HIGH 0x04
239 #define RF_PA_LOW 0x02
247 #define PLOS_CNT 0x10
250 #define TX_REUSE 0x40
251 #define TX_FULL_FIFO 0x20 // annoyingly this has the same mnemonic as in STATUS
252 #define TX_EMPTY 0x10
254 #define RX_EMPTY 0x01
264 #define EN_ACK_PAY 0x02
265 #define EN_DYN_ACK 0x01
268 #define REGISTER_MASK 0x1F
269 #define R_REGISTER 0x00
270 #define W_REGISTER 0x20
271 #define R_RX_PAYLOAD 0x61
272 #define W_TX_PAYLOAD 0xA0
273 #define FLUSH_TX 0xE1
274 #define FLUSH_RX 0xE2
275 #define REUSE_TX_PL 0xE3
276 #define ACTIVATE 0x50
277 #define R_RX_PL_WID 0x60
278 #define W_ACK_PAYLOAD 0xA8
279 #define W_TX_PAYLOAD_NO_ACK 0xB0
void(* AckPayloadReceived)(uint8_t *data, uint8_t length)
Definition: nrf24.h:41
uint8_t spi_channel
Definition: nrf24.h:46
uint8_t prim_rx
Definition: nrf24.h:48
void(* ce)(uint8_t)
Set Chip Enable Function Pointer.
Definition: nrf24.h:38
uint8_t nRF24_ReadReg(nrf24_t *nrf_object, uint8_t reg_address)
Definition: nrf24.c:362
uint8_t state
state of radio
Definition: nrf24.h:45
void(* AckPayloadSent)(void)
Definition: nrf24.h:44
void nRF24_WriteAck(nrf24_t *nrf_object, uint8_t *buf, uint8_t length, uint8_t pipe)
Definition: nrf24.c:105
void nRF24_OpenTxPipe(nrf24_t *nrf_object, uint64_t address)
Definition: nrf24.c:197
void nRF24_Read(nrf24_t *nrf_object, uint8_t *buf, uint8_t length)
uint8_t unused
Definition: nrf24.h:50
void nRF24_SetCRCMode(nrf24_t *nrf_object, nrf24_crc_mode_e mode)
Definition: nrf24.c:161
nrf24_datarate_e
Definition: nrf24.h:65
uint8_t last_rx_pipe
Definition: nrf24.h:54
void nRF24_SetActive(nrf24_t *nrf_object, uint8_t active)
Definition: nrf24.c:290
void nRF24_FlushRx(nrf24_t *nrf_object)
Definition: nrf24.c:303
void nRF24_FlushTx(nrf24_t *nrf_object)
Definition: nrf24.c:317
void nRF24_Standby(nrf24_t *nrf_object)
Definition: nrf24.c:122
void(* AckReceived)(void)
Definition: nrf24.h:40
void(* csn)(uint8_t)
Set SPI Ship Select Function Pointer.
Definition: nrf24.h:39
void nRF24_SetDataRate(nrf24_t *nrf_object, nrf24_datarate_e rate)
Definition: nrf24.c:143
uint64_t last_tx_address
Definition: nrf24.h:53
void nRF24_SetRetries(nrf24_t *nrf_object, uint8_t delay, uint8_t count)
Definition: nrf24.c:139
const int delay
Definition: hal_seven_seg.c:25
uint8_t aw
Definition: nrf24.h:49
void nRF24_WriteMultReg(nrf24_t *nrf_object, uint8_t reg_address, uint8_t *data_ptr, uint8_t length)
Definition: nrf24.c:345
void(* MaxRetriesHit)(void)
Definition: nrf24.h:42
void(* ReceivedPayload)(uint8_t *data, uint8_t length)
Definition: nrf24.h:43
void nRF24_EventHandler(nrf24_t *nrf_object)
Definition: nrf24.c:211
void nRF24_WriteReg(nrf24_t *nrf_object, uint8_t reg_address, uint8_t value)
Definition: nrf24.c:331
struct nrf24_radio_t::settings settings
uint8_t nRF24_GetPayloadLength(nrf24_t *nrf_object)
Definition: nrf24.c:377
nrf24_crc_mode_e
Definition: nrf24.h:71
nrf24_pa_level_e
Definition: nrf24.h:58
void nRF24_SetPowerAmplificationLevel(nrf24_t *nrf_object, nrf24_pa_level_e level)
Definition: nrf24.c:129
void nRF24_Write(nrf24_t *nrf_object, uint8_t *buf, uint8_t length)
Definition: nrf24.c:87
void nRF24_OpenRxPipe(nrf24_t *nrf_object, uint8_t pipenum, uint64_t address)
Definition: nrf24.c:175
void nRF24_Init(nrf24_t *nrf_object)
Definition: nrf24.c:8
void nRF24_SetChannel(nrf24_t *nrf_object, uint8_t channel)
Definition: nrf24.c:171
struct nrf24_radio_t nrf24_t
void nRF24_StartListening(nrf24_t *nrf_object)
Definition: nrf24.c:69
uint64_t rx_address_p0
Definition: nrf24.h:52