From f27624585858707f761f893d3b4020319c6a3e85 Mon Sep 17 00:00:00 2001
From: zhyinch <zhyinch@gmail.com>
Date: 星期五, 18 十二月 2020 16:56:36 +0800
Subject: [PATCH] V2.16 手动时间片,时钟同步精度提高到0.1ms

---
 Src/application/dw_app.c |   24 +++++++++++++-----------
 1 files changed, 13 insertions(+), 11 deletions(-)

diff --git a/Src/application/dw_app.c b/Src/application/dw_app.c
index 2e3bc79..5194b6c 100644
--- a/Src/application/dw_app.c
+++ b/Src/application/dw_app.c
@@ -69,7 +69,7 @@
 #define FINAL_MSG_FINAL_TX_TS_IDX 18
 #define FINAL_MSG_TS_LEN 4
 
-#define STARTPOLL  REGPOLL
+#define STARTPOLL  DISCPOLL
 enum enumtagstate
 {
 	REGPOLL,
@@ -552,7 +552,7 @@
 			{
 				memcpy(&minid, &rx_buffer[ANCHOR_ID_IDX], 4);
 				tag_state=GETNEARMSG;
-				trygetnearmsg_times=5;
+				trygetnearmsg_times=10*tag_frequency;
 				mindist=temp_dist;
 			}
 			if(result==0)
@@ -584,7 +584,7 @@
 		tyncpoll_time=(tagslotpos-1)*slottime;
 	}
 	mainbase_id=minid;
-//	mainbase_id = 0x9804;
+//	mainbase_id = 0x4;
 }
 u8 nearmsg_mainbase=0,rec_tagpos_emptylist[32],mainbase_type;;
 void GetNearMsg(void)
@@ -777,7 +777,7 @@
 									memcpy(&nearbase_switchdistlist[rec_nearbasepos],&rx_buffer[NR_NEARSWITCH_DISTANCE],2);
 									nearbase_distlist[rec_nearbasepos]=temp_dist;								
 									final_msg_set_ts(&tx_near_msg[FINAL_MSG_RESP_RX_NEARBASE_IDX+(rec_nearbasepos)*4], resp_rx_ts);
-									if(temp_dist<nearbase_switchdistlist[rec_nearbasepos]&&nearbase_switchdistlist[rec_nearbasepos]!=0&&temp_dist!=0)
+									if(temp_dist<nearbase_switchdistlist[rec_nearbasepos]&&nearbase_switchdistlist[rec_nearbasepos]!=0&&temp_dist>0)
 									{
 										mainbase_id = rec_nearbaseid;
 										tag_state = GETNEARMSG;
@@ -852,9 +852,9 @@
 //				mainbase_id = true_nearbase_idlist[0];
 //				tag_state = GETNEARMSG;
 //			}
-			if(mainbase_lost_count>10)
+			if(mainbase_lost_count>10*tag_frequency)
 			{
-				tag_state = DISCPOLL;
+				tag_state = STARTPOLL;
 			}
 //				for (i=0;i<nearbase_num;i++)
 //	{
@@ -976,6 +976,7 @@
 									mainbase_id=rec_nearbaseid;
 									nearbase_num=rx_buffer[NEARBASENUM_INDEX];
 									memcpy(nearbaseid_list,&rx_buffer[NEARBASEID_INDEX],nearbase_num*2);
+									if(tagslotpos!=255)
 									tag_state = NEARPOLL;
 								}
 							}
@@ -985,10 +986,13 @@
 {
 	
 	//LED0_ON;
+	SPIx_CS_GPIO->BRR = SPIx_CS;
+	delay_us(700);
+	SPIx_CS_GPIO->BSRR = SPIx_CS;
 	id =  dwt_readdevid() ;
 	    while (DWT_DEVICE_ID != id) 
     {
-			Dw1000_Init();
+		//	Dw1000_Init();
 			id =  dwt_readdevid() ;
     }
 	switch(tag_state)
@@ -1010,13 +1014,11 @@
 		LED_LG_OFF;
 		if(trygetnearmsg_times==0)
 		{
-			tag_state = DISCPOLL;
+			tag_state = STARTPOLL;
 		}
 			break;
-		case NEARPOLL:
-			//GPIO_WriteBit(EU_TX_GPIO, EU_RX_PIN, Bit_SET);
+		case NEARPOLL:	
 			NearPoll();
-			//GPIO_WriteBit(EU_TX_GPIO, EU_RX_PIN, Bit_RESET);
 			break;
 	}
 	dwt_entersleep();

--
Gitblit v1.9.3