From f975229aa44884a7dba218247a49d488f54226a0 Mon Sep 17 00:00:00 2001 From: zhangbo <zhangbo@qq.com> Date: 星期一, 04 八月 2025 13:39:16 +0800 Subject: [PATCH] 测试4个基站测距 --- keil/uwb_tag_.c | 18 ++++++++++++------ 1 files changed, 12 insertions(+), 6 deletions(-) diff --git a/keil/uwb_tag_.c b/keil/uwb_tag_.c index c667628..11640d9 100644 --- a/keil/uwb_tag_.c +++ b/keil/uwb_tag_.c @@ -29,7 +29,7 @@ #define POLL_DELAY 100U //yuan100U /* Receive response timeout */ -#define RESP_RX_TIMEOUT_US_DEFAULT 600U //Yuan500 10mssuccess 300jixian +#define RESP_RX_TIMEOUT_US_DEFAULT 700U //Yuan500 10mssuccess 300jixian #define RESP_RX_TIMEOUT_US 2000000 /* Field index in frame */ #define MSG_SEQ_NUM_IDX 2 @@ -37,7 +37,8 @@ #define FINAL_MSG_RESP_RX_TS_IDX 14 #define FINAL_MSG_FINAL_TX_TS_IDX 18 #define DELAY_DEFAULT 50000 -#define DELAY_BETWEEN_TWO_FRAME_UUS 500 //yuan1400 +//#define DELAY_BETWEEN_TWO_FRAME_UUS 500 //yuan1400 +#define DELAY_BETWEEN_TWO_FRAME_UUS 700 //yuan1400 #define HALF_SECOND_TIME 62400000 uint16_t CmpTagInList(uint16_t tagid); @@ -51,15 +52,16 @@ }; uint32_t dev_id; uint8_t group_id; + #ifdef DW1000 /* Default communication configuration. */ static struct mk_uwb_configure config = {//yuan .phy_work_mode = (uint8_t)(PHY_TX | PHY_RX), - .phy_cfg.ch_num = 9, /* Channel number. */ + .phy_cfg.ch_num = UWB_CH_NUM, /* 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 */ @@ -193,6 +195,7 @@ extern double distance; extern uint8_t bat_percent; uint32_t count1,count2; +extern uint32_t reboot_num; enum SIMPLE_FSM_T { SIMPLE_IDLE = 0, @@ -212,6 +215,7 @@ { tag_num_tosend = SEND_GROUP_MAX_NUM; } + memcpy(&uwb_sendbuffer[7],&g_com_map[VERSION],2); uwb_sendbuffer[GROUP_ID_IDX] = group_id; memcpy(&uwb_sendbuffer[TAG_ID_IDX],&dev_id,2); uwb_sendbuffer[BATTARY_IDX] = bat_percent; @@ -220,7 +224,8 @@ memcpy(&uwb_sendbuffer[NEARBASEID_INDEX],&taglist_id[taglist_current_index],tag_num_tosend*2);//基站id memcpy(&uwb_sendbuffer[NEARBASEID_INDEX+tag_num_tosend*2],&taglist_dist[taglist_current_index],tag_num_tosend*2); uwb_sendbuffer[MESSAGE_TYPE_IDX] = MBX_POLL; - memcpy(&uwb_sendbuffer[ANCHOR_ID_IDX],&mainbase_id,2); +// memcpy(&uwb_sendbuffer[ANCHOR_ID_IDX],&mainbase_id,2); + } static enum SIMPLE_FSM_T state = SIMPLE_IDLE; @@ -651,6 +656,7 @@ sleep_timer_start(__MS_TO_32K_CNT(SLEEP_COUNT-rand_temp));//测试 }else if (rx_buf[MESSAGE_TYPE_IDX] == MBX_RESPONSE&&!memcmp(&rx_buf[TAG_ID_IDX],&dev_id,2)&&rx_buf[GROUP_ID_IDX]==group_id) //判断接收到的数据是否是response数据 { + reboot_num=0;//清0复位监测数值 memcpy(&rec_nearbaseid,&rx_buf[ANCHOR_ID_IDX],2); rec_tag_index = CmpTagInList(rec_nearbaseid);//当前新来的这包数据插入当前表中的位置索引 //rec_nearbasepos=FindNearBasePos(rec_nearbaseid); @@ -663,7 +669,7 @@ // nearbase_num++; // nearbaseid_list[rec_nearbasepos] = rec_nearbaseid; // } -// exsistbase_list[rec_nearbasepos]=KEEP_TIMES;//更新存活时间 + //exsistbase_list[rec_nearbasepos]=KEEP_TIMES;//更新存活时间 memset(rx_buf, 0, sizeof(rx_buf));//清空接收到的用完的数组 rx_length=0;//清0长度 -- Gitblit v1.9.3