chen
2024-12-05 200bbcc553cfb7c11b06058f3f13ca9247783e93
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&&current_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());