浏览代码

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

正在加载...
取消
保存