chen
2024-12-04 65d6ddb1de4064ba058cd718873a73115735211a
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,7 +398,7 @@
}
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
    // phy/mac/aes/lsp/phy timers initialized
@@ -435,6 +435,10 @@
#endif
    ranging_frame_type_set(config.phy_cfg.sts_pkt_cfg);
}
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 +478,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&&current_count<end_receive_count+HALF_SECOND_TIME)
            {
                    break;
            }
      }
      temp_count3=phy_timer_count_get();
      if(receive_flag==1)//成功接收数据
      {
@@ -506,7 +518,7 @@
//         #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_time_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());