zhangbo
2025-04-28 7001a22f0c7e737dc8193c1b50be7ef31b38108a
keil/uwb_app.c
@@ -75,14 +75,17 @@
    CLOSE,
    RANGE,
}enumwltagstate;
#define TAGFREQ_IDX                  7
/* Ranging period */
#define RANGING_PERIOD_MS (1000)
/* This is the delay from Frame RX POLL frame to send RESP Frame */
#define POLL_RX_TO_RESP_TX_DLY_US 550U //yuan550极限
#define POLL_RX_TO_RESP_TX_DLY_US 670U //yuan550极限
//#define POLL_RX_TO_RESP_TX_DLY_US 550U //yuan550极限
#define RESP_TX_TO_FINAL_RX_DLY_US 500U
//#define RESP_TX_TO_FINAL_RX_DLY_US 500U
/* RX sync window size 50 ms*/
#define RX_SYNC_WIN_US 5000U //yuan1000  7000success
@@ -99,6 +102,7 @@
#define RX_WIN_IN_ADVANCE_US (150)
#define DELAY_BETWEEN_TWO_FRAME_UUS 500 //yuan1400
//#define DELAY_BETWEEN_TWO_FRAME_UUS 500 //yuan1400
/* Field index in frame */
#define MSG_SEQ_NUM_IDX 2
@@ -137,11 +141,11 @@
#ifdef DW1000
static struct mk_uwb_configure config = {
    .phy_work_mode = (uint8_t)(PHY_TX | PHY_RX),
    .phy_cfg.ch_num = 9,                      /* Channel number.                           */
    .phy_cfg.ch_num = 5,                      /* Channel number.                           */
    .phy_cfg.code_index = 9,                  /* TRX preamble code                         */
    .phy_cfg.mean_prf = MEAN_PRF_64M,         /* Mean prf 64/128/256M                      */
    .phy_cfg.data_bit_rate = DATA_BR_6M8,     /* Data rate 6.8M                            */
    .phy_cfg.sync_sym = PREAM_LEN_128,        /* Preamble duration, length of preamble 128 */
    .phy_cfg.sync_sym = PREAM_LEN_64,        /* Preamble duration, length of preamble 128 */
    .phy_cfg.sfd_sym = NON_STD_NSFD5_8,          /* Identifier for SFD sequence               */
    .phy_cfg.ranging_bit = 1,                 /* ranging bit set 1                         */
    .phy_cfg.trx_mode = TRX_MODE_15_4A,  /* IEEE802.15.4z - BPRF mode                 */
@@ -309,7 +313,7 @@
        poll_rx_num++;
        rssi = rx_report->rssi;
        receive_flag=1;
            Anchor_App();
      Anchor_App();
        if(resp_tx_flag==0)
        {
        OpenUWB();
@@ -363,10 +367,10 @@
        temp_count= phy_timer_count_get();
        temp_internal=temp_count;
        resp_tx_num++;
//      OpenUWB();//再次开启UWB接收
          OpenUWB();//再次开启UWB接收
        //LOG_INFO(TRACE_MODULE_APP, "poll_rx_num is %d,resp_tx_num is %d\r\n",poll_rx_num,resp_tx_num);
    }
    OpenUWB();//再次开启UWB接收
//    OpenUWB();//再次开启UWB接收
}
uint32_t start_receive_count,end_receive_count,poll_timeout,current_count,temp_resp;
 uint16_t anchordata_id[TAG_NUM_IN_SYS],anchordata_dist[TAG_NUM_IN_SYS];
@@ -506,6 +510,7 @@
    memcpy(&send_buffer[ANCHOR_ID_IDX],&dev_id,2);//自身id
    memcpy(&send_buffer[TAG_ID_IDX],&tag_id_recv,2);//接受者id
    send_buffer[MESSAGE_TYPE_IDX]=MBX_RESPONSE;
     memcpy(&send_buffer[TAGFREQ_IDX],&tag_frequency,2);
    position=ancrec_nearbasepos;
    resp_tx_en_start_u32 = poll_rx_en_start_u32+US_TO_PHY_TIMER_COUNT(POLL_RX_TO_RESP_TX_DLY_US)+ancrec_nearbasepos*US_TO_PHY_TIMER_COUNT(DELAY_BETWEEN_TWO_FRAME_UUS);//加入帧间隔