|
|
@@ -64,8 +64,12 @@ void Set_NRF24L01_Pins(void)
|
|
64
|
64
|
|
|
65
|
65
|
void Configure_Transmission(uint8_t moduleId)
|
|
66
|
66
|
{
|
|
67
|
|
- DYNPD_REGISTER dyndpRegisterContents = {.byte = 0x0};
|
|
68
|
67
|
SETUP_RETR_REGISTER setupRetrRegisterContents = {.byte = 0x0};
|
|
|
68
|
+ EN_RXADDR_REGISTER enableRxAddressesRegisterContents = {.byte = 0x0};
|
|
|
69
|
+ RX_PW_Pn_REGISTER rxPwPnRegisterContents = {.byte = 0x0};
|
|
|
70
|
+ EN_AA_REGISTER enAaRegister = {.byte = 0x0};
|
|
|
71
|
+ FEATURE_REGISTER featureRegisterContents = {.byte = 0x0};
|
|
|
72
|
+ DYNPD_REGISTER dyndpRegisterContents = {.byte = 0x0};
|
|
69
|
73
|
|
|
70
|
74
|
uint8_t txAddress[5] = {0xB3, 0xB3, 0xB3, 0xB3, 0x00};
|
|
71
|
75
|
uint8_t rx0Address[5] = {0xB3, 0xB3, 0xB3, 0xB3, 0x00};
|
|
|
@@ -94,6 +98,24 @@ void Configure_Transmission(uint8_t moduleId)
|
|
94
|
98
|
/* Set the frequency to 1450 MHz */
|
|
95
|
99
|
Write_NRF_Register(RF_CH_ADDRESS, 0x32);
|
|
96
|
100
|
|
|
|
101
|
+ /* Enable dynamic payload length */
|
|
|
102
|
+ Send_Activate_Command();
|
|
|
103
|
+ featureRegisterContents.bits.EN_DPL = 1; // enable dynamic payload length
|
|
|
104
|
+ Write_NRF_Register(FEATURE_ADDRESS, featureRegisterContents.byte);
|
|
|
105
|
+
|
|
|
106
|
+ /* set dynamic payload length for all data pipes
|
|
|
107
|
+ * When the dynamic payload length is not set the module cannot receive packets from some
|
|
|
108
|
+ * stations. This is probably due to counterfeit NRF24L01+ chips.
|
|
|
109
|
+ */
|
|
|
110
|
+ dyndpRegisterContents.bits.DPL_P0 = 1;
|
|
|
111
|
+ dyndpRegisterContents.bits.DPL_P1 = 1;
|
|
|
112
|
+ dyndpRegisterContents.bits.DPL_P2 = 1;
|
|
|
113
|
+ dyndpRegisterContents.bits.DPL_P3 = 1;
|
|
|
114
|
+ dyndpRegisterContents.bits.DPL_P4 = 1;
|
|
|
115
|
+ dyndpRegisterContents.bits.DPL_P5 = 1;
|
|
|
116
|
+ Write_NRF_Register(DYNPD_ADDRESS, dyndpRegisterContents.byte);
|
|
|
117
|
+
|
|
|
118
|
+ /* Set up the auto retries */
|
|
97
|
119
|
|
|
98
|
120
|
/* */
|
|
99
|
121
|
setupRetrRegisterContents.bits.ARC = 0x3;
|