| | |
| | | float dis_after_filter; //当前距离值 |
| | | LPFilter_Frac* p_Dis_Filter; //测距用的低通滤波器 |
| | | |
| | | |
| | | void NextSlotDelayMs(int16_t delayms); |
| | | void GetNearMsg(void); |
| | | static uint64_t get_tx_timestamp_u64(void) |
| | | { |
| | |
| | | } |
| | | |
| | | u16 tag_time_recv[TAG_NUM_IN_SYS]; |
| | | u8 usart_send[25]; |
| | | u8 usart_send[40]; |
| | | u8 battary,button; |
| | | extern uint8_t g_pairstart; |
| | | void tag_sleep_configuraion(void) |
| | |
| | | int32_t minddist=0x1ffff,minid=-1,temp_dist; |
| | | u8 i,j,getsync_flag=0; |
| | | u16 mindist_ancid,random_delay_tim,tempval; |
| | | |
| | | NextSlotDelayMs(-2); |
| | | dwt_setrxaftertxdelay(POLL_TX_TO_RESP_RX_DLY_UUS); //设置发送后开启接收,并设定延迟时间 |
| | | dwt_setrxtimeout(RESP_RX_TIMEOUT_UUS); |
| | | frame_seq_nb++; |
| | |
| | | { |
| | | |
| | | exsistbase_list[i]--; |
| | | clockOffsetRatio = anc_clockoffset[i] * (FREQ_OFFSET_MULTIPLIER * HERTZ_TO_PPM_MULTIPLIER_CHAN_2 / 1.0e6) ; |
| | | rtd_init = tag_resprx[i] - poll_tx_ts; |
| | | clockOffsetRatio = anc_clockoffset[i] * (FREQ_OFFSET_MULTIPLIER * HERTZ_TO_PPM_MULTIPLIER_CHAN_5 / 1.0e6) ; |
| | | rtd_init = tag_resprx[i] - poll_tx_ts&0xffffffff; |
| | | rtd_resp = anc_resptx[i] - anc_pollrx[i]; |
| | | tof = ((rtd_init - rtd_resp * (1 - clockOffsetRatio)) / 2.0) * DWT_TIME_UNITS; |
| | | distance = tof * SPEED_OF_LIGHT; |
| | | if(distance>-1000&&distance<100000) |
| | | if(distance>-10&&distance<1000) |
| | | nearbase_distlist[i] = distance*100+anc_distoffset[i]; |
| | | }else{ |
| | | nearbase_distlist[i] = 0x1ffff; |
| | |
| | | #ifdef QIYA_JIZHAN |
| | | QiyaJizhan_Send(); |
| | | #else |
| | | Dw1000_Init(); |
| | | // Dw1000_Init(); |
| | | dwt_forcetrxoff(); |
| | | error_times = 0; |
| | | switch(tag_state) |
| | | { |
| | |
| | | break; |
| | | case NEARPOLL: |
| | | NearPoll(); |
| | | GetPressAndHeight(); |
| | | intheight =Altitude*100; |
| | | // GetPressAndHeight(); |
| | | // intheight =Altitude*100; |
| | | break; |
| | | case SINGLEPOLL: |
| | | // Poll(); |