From 5b22090187a41518cd4d72253f2fef4c61a0ce9b Mon Sep 17 00:00:00 2001 From: WXK <287788329@qq.com> Date: 星期三, 27 八月 2025 14:04:12 +0800 Subject: [PATCH] 1.8,修改蜂鸣器bug --- keil/uwb_tag.c | 59 +++++++++++++++++++++++++++++++++++++++++++++-------------- 1 files changed, 45 insertions(+), 14 deletions(-) diff --git a/keil/uwb_tag.c b/keil/uwb_tag.c index b692897..f4caa9d 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,9 @@ } } uint8_t readgcom_flag1; +uint32_t current_count11,current_count22,current_count33,current_count44,current_count55; +uint16_t adc_caiji; +uint8_t adc_one; void DiscPoll2(void) { uint32_t temp1,temp2,dw_systime,mindist_slavebaseid,mindist; @@ -639,6 +642,18 @@ poll_tx_ts_i64 = ranging_tx_time_correct(poll_tx_en_start_u32 + phy_shr_duration());//修正时间戳 temp_tag_count1=phy_timer_count_get(); + adc_caiji++; + if(adc_caiji>5&&adc_one==0) + { + adc_one=1; + adc_caiji=0; + MinuteTask(); + } + else if(adc_one==1&&adc_caiji>3600) + { + adc_caiji=0; + MinuteTask(); + } while(mac_is_busy());//等待发送完成 tx_near_msg[TAGCONFIGSUCCESS_INDEX] =0; @@ -648,21 +663,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, 15000); 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 +700,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 +709,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 +722,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); //计算距离并更新距离表 @@ -801,6 +820,18 @@ poll_tx_ts_i64 = ranging_tx_time_correct(poll_tx_en_start_u32 + phy_shr_duration());//修正时间戳 temp_tag_count1=phy_timer_count_get(); + adc_caiji++; + if(adc_caiji>5&&adc_one==0) + { + adc_one=1; + adc_caiji=0; + MinuteTask(); + } + else if(adc_one==1&&adc_caiji>3600) + { + adc_caiji=0; + MinuteTask(); + } while(mac_is_busy());//等待发送完成 tx_near_msg[TAGCONFIGSUCCESS_INDEX] =0; @@ -811,10 +842,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