浏览代码

Set the transmission retries and time-out duration to each maximum

Bernd Gottschlag 5 年前
父节点
当前提交
fc26a37348
共有 1 个文件被更改,包括 9 次插入2 次删除
  1. 9
    2
      weather-sensor/firmware/nrf24l01.c

+ 9
- 2
weather-sensor/firmware/nrf24l01.c 查看文件

52
 {
52
 {
53
 	FEATURE_REGISTER featureRegisterContents = {.byte = 0x0};
53
 	FEATURE_REGISTER featureRegisterContents = {.byte = 0x0};
54
 	DYNPD_REGISTER dyndpRegisterContents = {.byte = 0x0};
54
 	DYNPD_REGISTER dyndpRegisterContents = {.byte = 0x0};
55
+	SETUP_RETR_REGISTER setupRetrRegisterContents = {.byte = 0x0};
55
 	/* 
56
 	/* 
56
 	 * - Length of CRC (CRCO in CONFIG)
57
 	 * - Length of CRC (CRCO in CONFIG)
57
 	 * - Enable auto acknowledgment (EN_AA)
58
 	 * - Enable auto acknowledgment (EN_AA)
82
 	featureRegisterContents.bits.EN_DPL = 1; // enable dynamic payload length
83
 	featureRegisterContents.bits.EN_DPL = 1; // enable dynamic payload length
83
 	Write_NRF_Register(FEATURE_ADDRESS, featureRegisterContents.byte);
84
 	Write_NRF_Register(FEATURE_ADDRESS, featureRegisterContents.byte);
84
 
85
 
86
+	/* */
87
+	setupRetrRegisterContents.bits.ARC = 0x3;
88
+	setupRetrRegisterContents.bits.ARD = 0xF;
89
+	Write_NRF_Register(SETUP_RETR_ADDRESS, setupRetrRegisterContents.byte);
90
+
85
 	/* set dynamic payload length for all data pipes */
91
 	/* set dynamic payload length for all data pipes */
86
 	dyndpRegisterContents.bits.DPL_P0 = 1;
92
 	dyndpRegisterContents.bits.DPL_P0 = 1;
87
 	dyndpRegisterContents.bits.DPL_P1 = 1;
93
 	dyndpRegisterContents.bits.DPL_P1 = 1;
109
 	uint8_t lengthRead;
115
 	uint8_t lengthRead;
110
 	char debugString[50] = "";
116
 	char debugString[50] = "";
111
 	uint32_t timeout = 0;
117
 	uint32_t timeout = 0;
118
+	uint8_t temp = 0;
112
 	/* TODO:
119
 	/* TODO:
113
 	 * - if needed: PRIM_RX = 0
120
 	 * - if needed: PRIM_RX = 0
114
 	 * - Set CE = 1 for more than 10 us
121
 	 * - Set CE = 1 for more than 10 us
125
 	NRF_CE_PORT &= ~(1 << NRF_CE_PIN);
132
 	NRF_CE_PORT &= ~(1 << NRF_CE_PIN);
126
 
133
 
127
 
134
 
135
+	sprintf(debugString, "-\r\n");
136
+	Print_Debug_String(debugString);
128
 	do
137
 	do
129
 	{
138
 	{
130
 		_delay_ms(1);
139
 		_delay_ms(1);
166
 	statusRegisterContents.bits.TX_DS = 1;
175
 	statusRegisterContents.bits.TX_DS = 1;
167
 	statusRegisterContents.bits.MAX_RT = 1;
176
 	statusRegisterContents.bits.MAX_RT = 1;
168
 	Write_NRF_Register(STATUS_ADDRESS, statusRegisterContents.byte);
177
 	Write_NRF_Register(STATUS_ADDRESS, statusRegisterContents.byte);
169
-
170
-	// TODO: flush FIFO if an error occured
171
 }
178
 }
172
 
179
 
173
 void Print_Register_Contents(uint8_t address)
180
 void Print_Register_Contents(uint8_t address)

正在加载...
取消
保存