From 2ee355706fb52cd610000dfa89ad244656428d72 Mon Sep 17 00:00:00 2001
From: WXK <287788329@qq.com>
Date: 星期四, 14 八月 2025 18:23:46 +0800
Subject: [PATCH] 开发完成  先提交  适配纽扣电池

---
 keil/uwb_tag.c |   33 +++++++++++++++++++--------------
 1 files changed, 19 insertions(+), 14 deletions(-)

diff --git a/keil/uwb_tag.c b/keil/uwb_tag.c
index b692897..50cb2ee 100644
--- a/keil/uwb_tag.c
+++ b/keil/uwb_tag.c
@@ -29,7 +29,7 @@
 #define POLL_DELAY  100U //yuan100U
 
 /* Receive response timeout */
-#define RESP_RX_TIMEOUT_US 10000 //Yuan500 10mssuccess 300jixian
+#define RESP_RX_TIMEOUT_US 1000 //Yuan500 10mssuccess 300jixian
 
 /* Field index in frame */
 #define MSG_SEQ_NUM_IDX 2
@@ -569,6 +569,7 @@
                     }
 }
 uint8_t readgcom_flag1;
+uint32_t current_count11,current_count22,current_count33,current_count44,current_count55;
 void DiscPoll2(void)
 {
     uint32_t temp1,temp2,dw_systime,mindist_slavebaseid,mindist;
@@ -648,21 +649,21 @@
     flag_getresponse=0;
     
     temp_tag_count2=phy_timer_count_get();
-    resp_rx_en_start_u32 =  poll_tx_en_start_u32+ US_TO_PHY_TIMER_COUNT(POLL_TX_TO_RESP_RX_DLY_US);//设置发送多少s后接收按target独立时间起点算+ US_TO_PHY_TIMER_COUNT(POLL_TX_TO_RESP_RX_DLY_US为发送后要多久开启接收时间
+    resp_rx_en_start_u32 =  temp_tag_count2+ US_TO_PHY_TIMER_COUNT(600);//设置发送多少s后接收按target独立时间起点算+ US_TO_PHY_TIMER_COUNT(POLL_TX_TO_RESP_RX_DLY_US为发送后要多久开启接收时间
     temp_resp=resp_rx_en_start_u32;
-    //tempflag=uwb_rx(1, resp_rx_en_start_u32, RESP_RX_TIMEOUT_US);//开启接受并设置接收超时
-    tempflag=uwb_rx(0,0, RESP_RX_TIMEOUT_US);
+    tempflag=uwb_rx(1,resp_rx_en_start_u32, RESP_RX_TIMEOUT_US);
+//    tempflag=uwb_rx(0,0, 3000);
     receive_flag =0;
 	start_receive_count=phy_timer_count_get();
-	poll_timeout=nearbase_num*US_TO_PHY_TIMER_COUNT(DELAY_BETWEEN_TWO_FRAME_UUS)+US_TO_PHY_TIMER_COUNT(30000);//多一个多0.4ms默认0.4ms计算为0.125*4*100000,默认开启1mss
+	poll_timeout=US_TO_PHY_TIMER_COUNT(600);//多一个多0.4ms默认0.4ms计算为0.125*4*100000,默认开启1mss
 	end_receive_count=start_receive_count+poll_timeout;
 	if(end_receive_count>=UINT32_MAX)
 	{end_receive_count-=UINT32_MAX;}
 	current_count=phy_timer_count_get();	
     mainbase_dist=100000;
     mainbase_lost_count++;
-    while(current_count<end_receive_count||current_count>end_receive_count+HALF_SECOND_TIME)//循环接受包体,若为124.8K则是+62400000
-    {
+//    while(current_count<end_receive_count||current_count>end_receive_count+HALF_SECOND_TIME)//循环接受包体,若为124.8K则是+62400000
+//    {
     
     current_count=phy_timer_count_get();//不断刷新当前计数器值
     temp_tag_count2=phy_timer_count_get();
@@ -685,7 +686,8 @@
             temp_dist = nearbase_distlist[rec_nearbasepos];
             if(rx_buf[0]==0xff)
             {xiaobiaoqian_flag=1;}
-            tempflag=uwb_rx(0, 0, RESP_RX_TIMEOUT_US);//立即开启接受并设置0超时
+            current_count11=phy_timer_count_get();
+//            tempflag=uwb_rx(0, 0, RESP_RX_TIMEOUT_US);//立即开启接受并设置0超时
         }
         else if(rx_buf[MSG_TYPE_IDX]==LORA_MSGTYPE_WGRESPTAG)
         {
@@ -693,9 +695,10 @@
         } 
         else
         {
+            current_count22=phy_timer_count_get();
             if(recbase_num!=nearbase_num+1)
             {
-            tempflag=uwb_rx(0, 0, RESP_RX_TIMEOUT_US);//立即开启接受并设置0超时
+//            tempflag=uwb_rx(0, 0, RESP_RX_TIMEOUT_US);//立即开启接受并设置0超时
             }
         }
     //gpio_pin_clr(IO_PIN_5);//测试
@@ -705,12 +708,14 @@
     {//接收出错
     receive_flag=0;
         ggggg++;
-    tempflag=uwb_rx(0, 0, RESP_RX_TIMEOUT_US);//立即开启接受并设置0超时
+//    tempflag=uwb_rx(0, 0, RESP_RX_TIMEOUT_US);//立即开启接受并设置0超时
+        current_count33=phy_timer_count_get();
     }
     //gpio_pin_clr(IO_PIN_5);//测试
-    }
+//    }
     delay_us(1);
     uwb_rx_force_off(1);
+    current_count44=phy_timer_count_get();
 //    if(readgcom_flag1==0)
 //    {
     CalculateDists(poll_tx_ts_i64); //计算距离并更新距离表
@@ -811,10 +816,10 @@
     recbase_num=0;
     
     temp_tag_count2=phy_timer_count_get();
-    resp_rx_en_start_u32 =  poll_tx_en_start_u32+ US_TO_PHY_TIMER_COUNT(POLL_TX_TO_RESP_RX_DLY_US);//设置发送多少s后接收按target独立时间起点算+ US_TO_PHY_TIMER_COUNT(POLL_TX_TO_RESP_RX_DLY_US为发送后要多久开启接收时间
+    resp_rx_en_start_u32 =  temp_tag_count2+ US_TO_PHY_TIMER_COUNT(600);//设置发送多少s后接收按target独立时间起点算+ US_TO_PHY_TIMER_COUNT(POLL_TX_TO_RESP_RX_DLY_US为发送后要多久开启接收时间
     temp_resp=resp_rx_en_start_u32;
-    //tempflag=uwb_rx(1, resp_rx_en_start_u32, RESP_RX_TIMEOUT_US);//开启接受并设置接收超时
-    tempflag=uwb_rx(0,0, RESP_RX_TIMEOUT_US);
+    tempflag=uwb_rx(1, resp_rx_en_start_u32, RESP_RX_TIMEOUT_US);//开启接受并设置接收超时
+//    tempflag=uwb_rx(0,0, RESP_RX_TIMEOUT_US);
     receive_flag =0;
 	start_receive_count=phy_timer_count_get();
 	poll_timeout=nearbase_num*US_TO_PHY_TIMER_COUNT(DELAY_BETWEEN_TWO_FRAME_UUS)+US_TO_PHY_TIMER_COUNT(RESP_RX_TIMEOUT_US);//多一个多0.4ms默认0.4ms计算为0.125*4*100000,默认开启1mss

--
Gitblit v1.9.3