ATY_LIB V2_102_230218
ATY_LIB for general devices or ALGO
 
Loading...
Searching...
No Matches
nrf24l01.h File Reference
#include "fw_hal.h"
#include "string.h"

Go to the source code of this file.

Macros

#define NRF_CSN   P35
 
#define NRF_MOSI   P34
 
#define NRF_MISO   P33
 
#define NRF_SCK   P32
 
#define NRF_IRQ   P36
 
#define NRF_CE   P37
 
#define NRF24_CMD_R_REGISTER   0x00
 
#define NRF24_CMD_W_REGISTER   0x20
 
#define NRF24_CMD_R_RX_PAYLOAD   0x61
 
#define NRF24_CMD_W_TX_PAYLOAD   0xA0
 
#define NRF24_CMD_FLUSH_TX   0xE1
 
#define NRF24_CMD_FLUSH_RX   0xE2
 
#define NRF24_CMD_REUSE_TX_PL   0xE3
 
#define NRF24_CMD_R_RX_PL_WID   0x60
 
#define NRF24_CMD_W_ACK_PAYLOAD   0xA8
 
#define NRF24_CMD_W_TX_PAYLOAD_NOACK   0xB0
 
#define NRF24_CMD_NOP   0xFF
 
#define NRF24_CMD_ACTIVATE   0x50
 
#define NRF24_CMD_LOCK_UNLOCK   0x50
 
#define NRF24_REG_CONFIG   0x00
 
#define NRF24_REG_EN_AA   0x01
 
#define NRF24_REG_EN_RXADDR   0x02
 
#define NRF24_REG_SETUP_AW   0x03
 
#define NRF24_REG_SETUP_RETR   0x04
 
#define NRF24_REG_RF_CH   0x05
 
#define NRF24_REG_RF_SETUP   0x06
 
#define NRF24_REG_STATUS   0x07
 
#define NRF24_REG_OBSERVE_TX   0x08
 
#define NRF24_REG_RPD   0x09
 
#define NRF24_REG_RX_ADDR_P0   0x0A
 
#define NRF24_REG_RX_ADDR_P1   0x0B
 
#define NRF24_REG_RX_ADDR_P2   0x0C
 
#define NRF24_REG_RX_ADDR_P3   0x0D
 
#define NRF24_REG_RX_ADDR_P4   0x0E
 
#define NRF24_REG_RX_ADDR_P5   0x0F
 
#define NRF24_REG_TX_ADDR   0x10
 
#define NRF24_REG_RX_PW_P0   0x11
 
#define NRF24_REG_RX_PW_P1   0x12
 
#define NRF24_REG_RX_PW_P2   0x13
 
#define NRF24_REG_RX_PW_P3   0x14
 
#define NRF24_REG_RX_PW_P4   0x15
 
#define NRF24_REG_RX_PW_P5   0x16
 
#define NRF24_REG_FIFO_STATUS   0x17
 
#define NRF24_REG_DYNPD   0x1C
 
#define NRF24_REG_FEATURE   0x1D
 
#define NRF24_CONFIG_PRIM_RX   0x01
 
#define NRF24_CONFIG_PWR_UP   0x02
 
#define NRF24_FEATURE_EN_DYN_ACK   0x01
 
#define NRF24_FEATURE_EN_ACK_PAY   0x02
 
#define NRF24_FEATURE_EN_DPL   0x04
 
#define NRF24_FLAG_RX_DREADY   0x40
 
#define NRF24_FLAG_TX_DSENT   0x20
 
#define NRF24_FLAG_MAX_RT   0x10
 
#define NRF24_FLAG_TX_FULL   0x01
 
#define NRF24_MASK_REG_MAP   0x1F
 
#define NRF24_MASK_CRC   0x0C
 
#define NRF24_MASK_STATUS_IRQ   0x70
 
#define NRF24_MASK_RF_PWR   0x06
 
#define NRF24_MASK_RX_P_NO   0x0E
 
#define NRF24_MASK_DATARATE   0x28
 
#define NRF24_MASK_EN_RX   0x3F
 
#define NRF24_MASK_RX_PW   0x3F
 
#define NRF24_MASK_RETR_ARD   0xF0
 
#define NRF24_MASK_RETR_ARC   0x0F
 
#define NRF24_MASK_RXFIFO   0x03
 
#define NRF24_MASK_TXFIFO   0x30
 
#define NRF24_MASK_PLOS_CNT   0xF0
 
#define NRF24_MASK_ARC_CNT   0x0F
 
#define NRF24_ADDR_WIDTH   5
 
#define NRF24_PLOAD_WIDTH   32
 
#define NRF24_TEST_ADDR   "nRF24"
 

Enumerations

enum  NRF24_MODE { NRF24_MODE_RX = 0x00 , NRF24_MODE_TX = 0x01 , NRF24_MODE_RX = 0x00 , NRF24_MODE_TX = 0x01 }
 
enum  NRF24_SCEN {
  NRF24_SCEN_RX = 0x00 , NRF24_SCEN_TX = 0x01 , NRF24_SCEN_HALF_DUPLEX = 0x02 , NRF24_SCEN_RX = 0x00 ,
  NRF24_SCEN_TX = 0x01 , NRF24_SCEN_HALF_DUPLEX = 0x02
}
 

Functions

void NRF24L01_WriteReg (uint8_t reg, uint8_t value)
 
uint8_t NRF24L01_ReadReg (uint8_t reg)
 
void NRF24L01_ReadToBuf (uint8_t reg, uint8_t len)
 
void NRF24L01_WriteFromBuf (uint8_t reg, const uint8_t *pBuf, uint8_t len)
 
void NRF24L01_PrintBuf (void)
 
void NRF24L01_FlushRX (void)
 
void NRF24L01_FlushTX (void)
 
void NRF24L01_CheckFlag (void)
 
uint8_t NRF24L01_HandelIrqFlag (void)
 
void NRF24L01_Tx (uint8_t *pBuf)
 
void NRF24L01_StartFastWrite (const void *pBuf)
 
uint8_t NRF24L01_WriteFast (const void *pBuf)
 
void NRF24L01_ResetTX (void)
 
uint8_t NRF24L01_Check (void)
 
void NRF24L01_Init (NRF24_MODE mode)
 

Macro Definition Documentation

◆ NRF24_ADDR_WIDTH

#define NRF24_ADDR_WIDTH   5

Definition at line 100 of file nrf24l01.h.

◆ NRF24_CMD_ACTIVATE

#define NRF24_CMD_ACTIVATE   0x50

Definition at line 42 of file nrf24l01.h.

◆ NRF24_CMD_FLUSH_RX

#define NRF24_CMD_FLUSH_RX   0xE2

Definition at line 35 of file nrf24l01.h.

◆ NRF24_CMD_FLUSH_TX

#define NRF24_CMD_FLUSH_TX   0xE1

Definition at line 34 of file nrf24l01.h.

◆ NRF24_CMD_LOCK_UNLOCK

#define NRF24_CMD_LOCK_UNLOCK   0x50

Definition at line 43 of file nrf24l01.h.

◆ NRF24_CMD_NOP

#define NRF24_CMD_NOP   0xFF

Definition at line 40 of file nrf24l01.h.

◆ NRF24_CMD_R_REGISTER

#define NRF24_CMD_R_REGISTER   0x00

Definition at line 30 of file nrf24l01.h.

◆ NRF24_CMD_R_RX_PAYLOAD

#define NRF24_CMD_R_RX_PAYLOAD   0x61

Definition at line 32 of file nrf24l01.h.

◆ NRF24_CMD_R_RX_PL_WID

#define NRF24_CMD_R_RX_PL_WID   0x60

Definition at line 37 of file nrf24l01.h.

◆ NRF24_CMD_REUSE_TX_PL

#define NRF24_CMD_REUSE_TX_PL   0xE3

Definition at line 36 of file nrf24l01.h.

◆ NRF24_CMD_W_ACK_PAYLOAD

#define NRF24_CMD_W_ACK_PAYLOAD   0xA8

Definition at line 38 of file nrf24l01.h.

◆ NRF24_CMD_W_REGISTER

#define NRF24_CMD_W_REGISTER   0x20

Definition at line 31 of file nrf24l01.h.

◆ NRF24_CMD_W_TX_PAYLOAD

#define NRF24_CMD_W_TX_PAYLOAD   0xA0

Definition at line 33 of file nrf24l01.h.

◆ NRF24_CMD_W_TX_PAYLOAD_NOACK

#define NRF24_CMD_W_TX_PAYLOAD_NOACK   0xB0

Definition at line 39 of file nrf24l01.h.

◆ NRF24_CONFIG_PRIM_RX

#define NRF24_CONFIG_PRIM_RX   0x01

Definition at line 74 of file nrf24l01.h.

◆ NRF24_CONFIG_PWR_UP

#define NRF24_CONFIG_PWR_UP   0x02

Definition at line 75 of file nrf24l01.h.

◆ NRF24_FEATURE_EN_ACK_PAY

#define NRF24_FEATURE_EN_ACK_PAY   0x02

Definition at line 77 of file nrf24l01.h.

◆ NRF24_FEATURE_EN_DPL

#define NRF24_FEATURE_EN_DPL   0x04

Definition at line 78 of file nrf24l01.h.

◆ NRF24_FEATURE_EN_DYN_ACK

#define NRF24_FEATURE_EN_DYN_ACK   0x01

Definition at line 76 of file nrf24l01.h.

◆ NRF24_FLAG_MAX_RT

#define NRF24_FLAG_MAX_RT   0x10

Definition at line 81 of file nrf24l01.h.

◆ NRF24_FLAG_RX_DREADY

#define NRF24_FLAG_RX_DREADY   0x40

Definition at line 79 of file nrf24l01.h.

◆ NRF24_FLAG_TX_DSENT

#define NRF24_FLAG_TX_DSENT   0x20

Definition at line 80 of file nrf24l01.h.

◆ NRF24_FLAG_TX_FULL

#define NRF24_FLAG_TX_FULL   0x01

Definition at line 82 of file nrf24l01.h.

◆ NRF24_MASK_ARC_CNT

#define NRF24_MASK_ARC_CNT   0x0F

Definition at line 98 of file nrf24l01.h.

◆ NRF24_MASK_CRC

#define NRF24_MASK_CRC   0x0C

Definition at line 86 of file nrf24l01.h.

◆ NRF24_MASK_DATARATE

#define NRF24_MASK_DATARATE   0x28

Definition at line 90 of file nrf24l01.h.

◆ NRF24_MASK_EN_RX

#define NRF24_MASK_EN_RX   0x3F

Definition at line 91 of file nrf24l01.h.

◆ NRF24_MASK_PLOS_CNT

#define NRF24_MASK_PLOS_CNT   0xF0

Definition at line 97 of file nrf24l01.h.

◆ NRF24_MASK_REG_MAP

#define NRF24_MASK_REG_MAP   0x1F

Definition at line 85 of file nrf24l01.h.

◆ NRF24_MASK_RETR_ARC

#define NRF24_MASK_RETR_ARC   0x0F

Definition at line 94 of file nrf24l01.h.

◆ NRF24_MASK_RETR_ARD

#define NRF24_MASK_RETR_ARD   0xF0

Definition at line 93 of file nrf24l01.h.

◆ NRF24_MASK_RF_PWR

#define NRF24_MASK_RF_PWR   0x06

Definition at line 88 of file nrf24l01.h.

◆ NRF24_MASK_RX_P_NO

#define NRF24_MASK_RX_P_NO   0x0E

Definition at line 89 of file nrf24l01.h.

◆ NRF24_MASK_RX_PW

#define NRF24_MASK_RX_PW   0x3F

Definition at line 92 of file nrf24l01.h.

◆ NRF24_MASK_RXFIFO

#define NRF24_MASK_RXFIFO   0x03

Definition at line 95 of file nrf24l01.h.

◆ NRF24_MASK_STATUS_IRQ

#define NRF24_MASK_STATUS_IRQ   0x70

Definition at line 87 of file nrf24l01.h.

◆ NRF24_MASK_TXFIFO

#define NRF24_MASK_TXFIFO   0x30

Definition at line 96 of file nrf24l01.h.

◆ NRF24_PLOAD_WIDTH

#define NRF24_PLOAD_WIDTH   32

Definition at line 101 of file nrf24l01.h.

◆ NRF24_REG_CONFIG

#define NRF24_REG_CONFIG   0x00

Definition at line 46 of file nrf24l01.h.

◆ NRF24_REG_DYNPD

#define NRF24_REG_DYNPD   0x1C

Definition at line 70 of file nrf24l01.h.

◆ NRF24_REG_EN_AA

#define NRF24_REG_EN_AA   0x01

Definition at line 47 of file nrf24l01.h.

◆ NRF24_REG_EN_RXADDR

#define NRF24_REG_EN_RXADDR   0x02

Definition at line 48 of file nrf24l01.h.

◆ NRF24_REG_FEATURE

#define NRF24_REG_FEATURE   0x1D

Definition at line 71 of file nrf24l01.h.

◆ NRF24_REG_FIFO_STATUS

#define NRF24_REG_FIFO_STATUS   0x17

Definition at line 69 of file nrf24l01.h.

◆ NRF24_REG_OBSERVE_TX

#define NRF24_REG_OBSERVE_TX   0x08

Definition at line 54 of file nrf24l01.h.

◆ NRF24_REG_RF_CH

#define NRF24_REG_RF_CH   0x05

Definition at line 51 of file nrf24l01.h.

◆ NRF24_REG_RF_SETUP

#define NRF24_REG_RF_SETUP   0x06

Definition at line 52 of file nrf24l01.h.

◆ NRF24_REG_RPD

#define NRF24_REG_RPD   0x09

Definition at line 55 of file nrf24l01.h.

◆ NRF24_REG_RX_ADDR_P0

#define NRF24_REG_RX_ADDR_P0   0x0A

Definition at line 56 of file nrf24l01.h.

◆ NRF24_REG_RX_ADDR_P1

#define NRF24_REG_RX_ADDR_P1   0x0B

Definition at line 57 of file nrf24l01.h.

◆ NRF24_REG_RX_ADDR_P2

#define NRF24_REG_RX_ADDR_P2   0x0C

Definition at line 58 of file nrf24l01.h.

◆ NRF24_REG_RX_ADDR_P3

#define NRF24_REG_RX_ADDR_P3   0x0D

Definition at line 59 of file nrf24l01.h.

◆ NRF24_REG_RX_ADDR_P4

#define NRF24_REG_RX_ADDR_P4   0x0E

Definition at line 60 of file nrf24l01.h.

◆ NRF24_REG_RX_ADDR_P5

#define NRF24_REG_RX_ADDR_P5   0x0F

Definition at line 61 of file nrf24l01.h.

◆ NRF24_REG_RX_PW_P0

#define NRF24_REG_RX_PW_P0   0x11

Definition at line 63 of file nrf24l01.h.

◆ NRF24_REG_RX_PW_P1

#define NRF24_REG_RX_PW_P1   0x12

Definition at line 64 of file nrf24l01.h.

◆ NRF24_REG_RX_PW_P2

#define NRF24_REG_RX_PW_P2   0x13

Definition at line 65 of file nrf24l01.h.

◆ NRF24_REG_RX_PW_P3

#define NRF24_REG_RX_PW_P3   0x14

Definition at line 66 of file nrf24l01.h.

◆ NRF24_REG_RX_PW_P4

#define NRF24_REG_RX_PW_P4   0x15

Definition at line 67 of file nrf24l01.h.

◆ NRF24_REG_RX_PW_P5

#define NRF24_REG_RX_PW_P5   0x16

Definition at line 68 of file nrf24l01.h.

◆ NRF24_REG_SETUP_AW

#define NRF24_REG_SETUP_AW   0x03

Definition at line 49 of file nrf24l01.h.

◆ NRF24_REG_SETUP_RETR

#define NRF24_REG_SETUP_RETR   0x04

Definition at line 50 of file nrf24l01.h.

◆ NRF24_REG_STATUS

#define NRF24_REG_STATUS   0x07

Definition at line 53 of file nrf24l01.h.

◆ NRF24_REG_TX_ADDR

#define NRF24_REG_TX_ADDR   0x10

Definition at line 62 of file nrf24l01.h.

◆ NRF24_TEST_ADDR

#define NRF24_TEST_ADDR   "nRF24"

Definition at line 102 of file nrf24l01.h.

◆ NRF_CE

#define NRF_CE   P37

Definition at line 26 of file nrf24l01.h.

◆ NRF_CSN

#define NRF_CSN   P35

Definition at line 21 of file nrf24l01.h.

◆ NRF_IRQ

#define NRF_IRQ   P36

Definition at line 25 of file nrf24l01.h.

◆ NRF_MISO

#define NRF_MISO   P33

Definition at line 23 of file nrf24l01.h.

◆ NRF_MOSI

#define NRF_MOSI   P34

Definition at line 22 of file nrf24l01.h.

◆ NRF_SCK

#define NRF_SCK   P32

Definition at line 24 of file nrf24l01.h.

Enumeration Type Documentation

◆ NRF24_MODE

enum NRF24_MODE
Enumerator
NRF24_MODE_RX 
NRF24_MODE_TX 
NRF24_MODE_RX 
NRF24_MODE_TX 

Definition at line 104 of file nrf24l01.h.

105{
106 NRF24_MODE_RX = 0x00,
107 NRF24_MODE_TX = 0x01
108} NRF24_MODE;
NRF24_MODE
Definition: nrf24l01.h:105
@ NRF24_MODE_TX
Definition: nrf24l01.h:107
@ NRF24_MODE_RX
Definition: nrf24l01.h:106

◆ NRF24_SCEN

enum NRF24_SCEN
Enumerator
NRF24_SCEN_RX 
NRF24_SCEN_TX 
NRF24_SCEN_HALF_DUPLEX 
NRF24_SCEN_RX 
NRF24_SCEN_TX 
NRF24_SCEN_HALF_DUPLEX 

Definition at line 110 of file nrf24l01.h.

111{
112 NRF24_SCEN_RX = 0x00,
113 NRF24_SCEN_TX = 0x01,
115} NRF24_SCEN;
NRF24_SCEN
Definition: nrf24l01.h:111
@ NRF24_SCEN_HALF_DUPLEX
Definition: nrf24l01.h:114
@ NRF24_SCEN_TX
Definition: nrf24l01.h:113
@ NRF24_SCEN_RX
Definition: nrf24l01.h:112

Function Documentation

◆ NRF24L01_Check()

uint8_t NRF24L01_Check ( void  )

Definition at line 168 of file nrf24l01.c.

169{
170 uint8_t i;
171 const uint8_t *ptr = (const uint8_t *)NRF24_TEST_ADDR;
174 for (i = 0; i < NRF24_ADDR_WIDTH; i++) {
175 UART1_TxHex(*(xbuf_data + i));
176 if (*(xbuf_data + i) != *ptr++) return 1;
177 }
178 return 0;
179}
unsigned char uint8_t
Definition: fw_types.h:18
void UART1_TxHex(uint8_t hex)
Definition: fw_uart.c:79
uint8_t __XDATA i
uint8_t * xbuf_data
Definition: nrf24l01.c:18
void NRF24L01_WriteFromBuf(uint8_t reg, const uint8_t *pBuf, uint8_t len)
Definition: nrf24l01.c:52
void NRF24L01_ReadToBuf(uint8_t reg, uint8_t len)
Definition: nrf24l01.c:43
#define NRF24_TEST_ADDR
Definition: nrf24l01.h:102
#define NRF24_CMD_W_REGISTER
Definition: nrf24l01.h:31
#define NRF24_ADDR_WIDTH
Definition: nrf24l01.h:100
#define NRF24_CMD_R_REGISTER
Definition: nrf24l01.h:30
#define NRF24_REG_TX_ADDR
Definition: nrf24l01.h:62

◆ NRF24L01_CheckFlag()

void NRF24L01_CheckFlag ( void  )

Definition at line 87 of file nrf24l01.c.

88{
89 // Read the status & reset the flags
91}
void NRF24L01_WriteReg(uint8_t reg, uint8_t value)
Definition: nrf24l01.c:24
#define NRF24_FLAG_MAX_RT
Definition: nrf24l01.h:81
#define NRF24_FLAG_RX_DREADY
Definition: nrf24l01.h:79
#define NRF24_REG_STATUS
Definition: nrf24l01.h:53
#define NRF24_FLAG_TX_DSENT
Definition: nrf24l01.h:80

◆ NRF24L01_FlushRX()

void NRF24L01_FlushRX ( void  )

Flush the RX FIFO

Definition at line 74 of file nrf24l01.c.

75{
77}
#define NRF24_CMD_NOP
Definition: nrf24l01.h:40
#define NRF24_CMD_FLUSH_RX
Definition: nrf24l01.h:35

◆ NRF24L01_FlushTX()

void NRF24L01_FlushTX ( void  )

Flush the TX FIFO

Definition at line 82 of file nrf24l01.c.

83{
85}
#define NRF24_CMD_FLUSH_TX
Definition: nrf24l01.h:34

◆ NRF24L01_HandelIrqFlag()

uint8_t NRF24L01_HandelIrqFlag ( void  )

Definition at line 111 of file nrf24l01.c.

112{
113 uint8_t tx_ds, max_rt, rx_dr, pipe_num;
114 NRF24L01_CheckFlag(&tx_ds, &max_rt, &rx_dr);
115 if (NRF24L01_RxAvailable(&pipe_num) == 1)
116 {
119 }
120 UART1_TxHex(tx_ds);
121 UART1_TxChar(' ');
122 UART1_TxHex(max_rt);
123 UART1_TxChar(' ');
124 UART1_TxHex(rx_dr);
125 UART1_TxChar(' ');
126 UART1_TxHex(pipe_num);
127 UART1_TxString("\r\n");
129}
void UART1_TxChar(char dat)
Definition: fw_uart.c:72
void UART1_TxString(uint8_t *str)
Definition: fw_uart.c:85
uint16_t NRF24L01_rxsn
Definition: nrf24l01.c:19
void NRF24L01_PrintBuf(void)
Definition: nrf24l01.c:61
uint8_t NRF24L01_RxAvailable(uint8_t *pipe_num)
Definition: nrf24l01.c:97
#define NRF24_CMD_R_RX_PAYLOAD
Definition: nrf24l01.h:32
#define NRF24_PLOAD_WIDTH
Definition: nrf24l01.h:101
void NRF24L01_CheckFlag(void)
Definition: nrf24l01.c:87

◆ NRF24L01_Init()

void NRF24L01_Init ( NRF24_MODE  mode)

Definition at line 181 of file nrf24l01.c.

182{
183 NRF_CE = 0;
194 switch (mode)
195 {
196 case NRF24_MODE_TX:
198 break;
199 case NRF24_MODE_RX:
200 default:
202 break;
203 }
204 NRF_CE = 1;
205}
const uint8_t TX_ADDRESS[NRF24_ADDR_WIDTH]
Definition: nrf24l01.c:21
const uint8_t RX_ADDRESS[NRF24_ADDR_WIDTH]
Definition: nrf24l01.c:22
#define NRF24_REG_CONFIG
Definition: nrf24l01.h:46
#define NRF24_REG_RF_SETUP
Definition: nrf24l01.h:52
#define NRF24_REG_EN_RXADDR
Definition: nrf24l01.h:48
#define NRF24_REG_RF_CH
Definition: nrf24l01.h:51
#define NRF_CE
Definition: nrf24l01.h:26
#define NRF24_REG_EN_AA
Definition: nrf24l01.h:47
#define NRF24_REG_RX_ADDR_P0
Definition: nrf24l01.h:56
#define NRF24_REG_RX_PW_P1
Definition: nrf24l01.h:64
#define NRF24_REG_RX_ADDR_P1
Definition: nrf24l01.h:57
#define NRF24_REG_RX_PW_P0
Definition: nrf24l01.h:63
#define NRF24_REG_SETUP_RETR
Definition: nrf24l01.h:50

◆ NRF24L01_PrintBuf()

void NRF24L01_PrintBuf ( void  )

Definition at line 61 of file nrf24l01.c.

62{
63 uint8_t i;
64 for (i = 0; i < NRF24_PLOAD_WIDTH + 1; i++)
65 {
67 }
68 UART1_TxString("\r\n");
69}
uint8_t __IDATA xbuf[NRF24_PLOAD_WIDTH+1]
Definition: nrf24l01.c:17

◆ NRF24L01_ReadReg()

uint8_t NRF24L01_ReadReg ( uint8_t  reg)

Definition at line 33 of file nrf24l01.c.

34{
35 NRF_CSN = 0;
36 xbuf[0] = reg;
39 NRF_CSN = 1;
40 return xbuf[1];
41}
void SPI_TxRxBytes(uint8_t *pBuf, uint8_t len)
Definition: fw_spi.c:28
#define NRF_CSN
Definition: nrf24l01.h:21

◆ NRF24L01_ReadToBuf()

void NRF24L01_ReadToBuf ( uint8_t  reg,
uint8_t  len 
)

Definition at line 43 of file nrf24l01.c.

44{
45 NRF_CSN = 0;
47 xbuf[0] = reg;
48 SPI_TxRxBytes(xbuf, len + 1);
49 NRF_CSN = 1;
50}

◆ NRF24L01_ResetTX()

void NRF24L01_ResetTX ( void  )

Definition at line 161 of file nrf24l01.c.

162{
164 NRF_CE = 0;
165 NRF_CE = 1;
166}

◆ NRF24L01_StartFastWrite()

void NRF24L01_StartFastWrite ( const void *  pBuf)

Definition at line 143 of file nrf24l01.c.

144{
146 NRF_CE = 1;
147}
#define NRF24_CMD_W_TX_PAYLOAD
Definition: nrf24l01.h:33

◆ NRF24L01_Tx()

void NRF24L01_Tx ( uint8_t pBuf)

Definition at line 131 of file nrf24l01.c.

132{
133 NRF_CE = 0;
136 NRF_CE = 1;
137 SYS_Delay(10); // for reliable DS state when SETUP_RETR is 0x13
138 NRF_CE = 0;
140 NRF_CE = 1;
141}
void SYS_Delay(uint16_t t)
Definition: fw_sys.c:65

◆ NRF24L01_WriteFast()

uint8_t NRF24L01_WriteFast ( const void *  pBuf)

Definition at line 149 of file nrf24l01.c.

150{
151 //Blocking only if FIFO is full. This will loop and block until TX is successful or fail
153 if (xbuf[0] & NRF24_FLAG_MAX_RT) {
154 return 0;
155 }
156 }
158 return 1;
159}
uint8_t NRF24L01_ReadReg(uint8_t reg)
Definition: nrf24l01.c:33
void NRF24L01_StartFastWrite(const void *pBuf)
Definition: nrf24l01.c:143
#define NRF24_FLAG_TX_FULL
Definition: nrf24l01.h:82

◆ NRF24L01_WriteFromBuf()

void NRF24L01_WriteFromBuf ( uint8_t  reg,
const uint8_t pBuf,
uint8_t  len 
)

Definition at line 52 of file nrf24l01.c.

53{
54 NRF_CSN = 0;
55 xbuf[0] = reg;
56 memcpy(xbuf_data, pBuf, len);
57 SPI_TxRxBytes(xbuf, len + 1);
58 NRF_CSN = 1;
59}

◆ NRF24L01_WriteReg()

void NRF24L01_WriteReg ( uint8_t  reg,
uint8_t  value 
)

Definition at line 24 of file nrf24l01.c.

25{
26 NRF_CSN = 0;
27 xbuf[0] = reg;
28 xbuf[1] = value;
30 NRF_CSN = 1;
31}
value
Definition: DS18B20_ATY.c:216