From 8fba17d0f4bd55471333a5d95d394efb118ede35 Mon Sep 17 00:00:00 2001
From: WXK <287788329@qq.com>
Date: 星期二, 07 十一月 2023 16:07:43 +0800
Subject: [PATCH] v2.61,修改测距后防撞标签之前的delay时间

---
 Src/application/dw_app.c |   21 +++++++++++++++------
 1 files changed, 15 insertions(+), 6 deletions(-)

diff --git a/Src/application/dw_app.c b/Src/application/dw_app.c
index 25cd71a..1ad9b1c 100644
--- a/Src/application/dw_app.c
+++ b/Src/application/dw_app.c
@@ -78,7 +78,7 @@
 	DISCPOLL,
 	GETNEARMSG,
 	NEARPOLL,
-    SINGLEPOLL,
+  SINGLEPOLL,
 }tag_state=STARTPOLL;
 static dwt_config_t config = {
 	2,               /* Channel number. */
@@ -89,7 +89,7 @@
 	9,               /* RX preamble code. Used in RX only. */
 	1,               /* Use non-standard SFD (Boolean) */
 	DWT_BR_6M8,      /* Data rate. */
-	DWT_PHRMODE_STD, /* PHY header mode. */
+	DWT_PHRMODE_EXT, /* PHY header mode. */
 	(129 + 8 - 8)    /* SFD timeout (preamble length + 1 + SFD length - PAC size). Used in RX only. */
 };
 static uint8_t tx_poll_msg[20] = {0};
@@ -847,6 +847,7 @@
     
     }
 }
+u32 last_mindist_slavebaseid;
 void NearPoll(void)
 {
 	
@@ -947,7 +948,7 @@
 					if (status_reg & SYS_STATUS_RXFCG)//如果成功接收
 						{
 							dwt_write32bitreg(SYS_STATUS_ID, SYS_STATUS_RXFCG | SYS_STATUS_TXFRS);//清楚寄存器标志位
-							frame_len = dwt_read32bitreg(RX_FINFO_ID) & RX_FINFO_RXFLEN_MASK;	//获得接收到的数据长度
+							frame_len = dwt_read32bitreg(RX_FINFO_ID) & RX_FINFO_RXFL_MASK_1023;	//获得接收到的数据长度
 							dwt_readrxdata(rx_buffer, frame_len, 0);   //读取接收数据
                             test2 = dwt_readcarrierintegrator();
 							dwt_setrxtimeout(0);//设定接收超时时间,0位没有超时时间
@@ -998,8 +999,8 @@
 									mainbase_dist=temp_dist;
                                     nearbase_distlist[0] = temp_dist;
                                     base_mindist = temp_dist;
-									if((rx_buffer[MOTORSTATE_INDEX]&0xf)!=3)
-										motor_state=rx_buffer[MOTORSTATE_INDEX]&0xf;
+//									if((rx_buffer[MOTORSTATE_INDEX]&0xf)!=3)
+//										motor_state=rx_buffer[MOTORSTATE_INDEX]&0xf;
                                     if(frame_len==38)
                                      {
                                          memcpy(&rec_maxrangelen,&rx_buffer[MAXRANGE_DISTANCE],2);
@@ -1094,7 +1095,9 @@
 				#ifdef SWITCHBASE_DIST
 				if(salvebase_mindist<mainbase_dist- THRESHOLD_CHANGE_MAINBASE_DIST )
 				{
-					changemainbase_count++;
+					if(mindist_slavebaseid==last_mindist_slavebaseid)
+					{
+						changemainbase_count++;
 					if(changemainbase_count>2)
 					{
                         changemainbase_count = 0;
@@ -1102,6 +1105,10 @@
                         tag_state = GETNEARMSG;                    
                         trygetnearmsg_times = 0;
                         GetNearMsg();
+					}}
+					else{
+						changemainbase_count = 1;
+						last_mindist_slavebaseid = mindist_slavebaseid;
 					}
 				}else{
 					changemainbase_count = 0;
@@ -1322,6 +1329,8 @@
           //  Poll();
             break;
 	}
+    delay_ms(100);
+//    dwt_forcetrxoff();
     FZNearPoll();
     dwt_forcetrxoff();
      userkey_state = !GET_USERKEY;

--
Gitblit v1.9.3