From 200bbcc553cfb7c11b06058f3f13ca9247783e93 Mon Sep 17 00:00:00 2001 From: chen <15335560115@163.com> Date: 星期四, 05 十二月 2024 18:27:50 +0800 Subject: [PATCH] 解决多设备丢包版本 --- keil/uwb_tag_.c | 26 ++++++++++++++++++++------ 1 files changed, 20 insertions(+), 6 deletions(-) diff --git a/keil/uwb_tag_.c b/keil/uwb_tag_.c index 1bd2f17..637d9bf 100644 --- a/keil/uwb_tag_.c +++ b/keil/uwb_tag_.c @@ -12,7 +12,7 @@ #if defined(MK_SS_TWR_DW_INIT) extern int TagRange(void); - +void Tag_uwb_init(void); /* Ranging period: 1s */ #define RANGING_PERIOD_MS (1000) @@ -398,11 +398,11 @@ } uint32_t count_index; int tt=1; -int TagRange(void) +void Tag_uwb_init(void) { - // The following peripherals will be initialized in the uwb_open function + // The following peripherals will be initialized in the uwb_open function // phy/mac/aes/lsp/phy timers initialized - uwb_open(); + uwb_open(); #ifdef STS_MODE // Set STS key and IV phy_sts_key_configure(&sts_iv_key); @@ -435,6 +435,11 @@ #endif ranging_frame_type_set(config.phy_cfg.sts_pkt_cfg); +} +int sleep_time_step=SLEEP_COUNT; +int TagRange(void) +{ + phy_timer_open(1, IRQ_PRIORITY_HIGH); // Register rx interrupt callback function mac_register_process_handler(tx_int_callback, rx_int_callback); @@ -474,7 +479,15 @@ current_count=phy_timer_count_get();//不断刷新当前计数器值 temp_count2=phy_timer_count_get(); - while(mac_is_busy());//等待接收完成 + while(mac_is_busy())//等待接收完成 + { + IdleTask(); + current_count=phy_timer_count_get(); + if(current_count>end_receive_count&¤t_count<end_receive_count+HALF_SECOND_TIME) + { + break; + } + } temp_count3=phy_timer_count_get(); if(receive_flag==1)//成功接收数据 { @@ -506,7 +519,8 @@ // #endif }else if(receive_flag==2){//接收出错 receive_flag=0; - sleep_timer_start(__MS_TO_32K_CNT(sleep_time_count-1));//测试 + sleep_timer_start(__MS_TO_32K_CNT(SLEEP_COUNT-phy_timer_count_get()%30));//测试 + sleep_time_step=SLEEP_COUNT-phy_timer_count_get()%10; tempflag=uwb_rx(0, 0, RESP_RX_TIMEOUT_US);//立即开启接受并设置0超时 temp_count3=phy_timer_count_get(); // while(mac_is_busy()); -- Gitblit v1.9.3