| | |
| | | #if defined(MK_SS_TWR_DW_INIT) |
| | | |
| | | extern int TagRange(void); |
| | | |
| | | void Tag_uwb_init(void); |
| | | /* Ranging period: 1s */ |
| | | #define RANGING_PERIOD_MS (1000) |
| | | |
| | |
| | | } |
| | | 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); |
| | |
| | | #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); |
| | | |
| | |
| | | |
| | | 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)//成功接收数据 |
| | | { |
| | |
| | | // #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()); |