From 12083b20d128f9d4449e286a14f1ba4fc31432fd Mon Sep 17 00:00:00 2001 From: zhyinch <zhyinch@gmail.com> Date: 星期六, 07 十一月 2020 12:52:37 +0800 Subject: [PATCH] 修改电机震动时间不对BUG --- Src/application/dw_app.c | 24 ++++++++++++++---------- 1 files changed, 14 insertions(+), 10 deletions(-) diff --git a/Src/application/dw_app.c b/Src/application/dw_app.c index 271fdc8..373b8f1 100644 --- a/Src/application/dw_app.c +++ b/Src/application/dw_app.c @@ -54,7 +54,7 @@ #define DELAY_BETWEEN_TWO_FRAME_UUS 400 -#define POLL_RX_TO_RESP_TX_DLY_UUS 420 +#define POLL_RX_TO_RESP_TX_DLY_UUS 470 /* This is the delay from the end of the frame transmission to the enable of the receiver, as programmed for the DW1000's wait for response feature. */ #define RESP_TX_TO_FINAL_RX_DLY_UUS 200 /* Receive final timeout. See NOTE 5 below. */ @@ -335,7 +335,7 @@ flag_getresponse=0; start_count=HAL_LPTIM_ReadCounter(&hlptim1); recbase_num=0; - timeout=ceil((float)nearbase_num*0.4)+2; + timeout=ceil((float)nearbase_num*SLOT_SCALE)+3; end_count=start_count+(timeout<<5); if(end_count>=32768) {end_count-=32768;} @@ -429,13 +429,7 @@ final_msg_set_ts(&tx_near_msg[FINAL_MSG_RESP_RX_NEARBASE_IDX], resp_rx_ts); final_msg_set_ts(&tx_near_msg[FINAL_MSG_FINAL_TX_TS_IDX], final_tx_ts); tx_near_msg[MESSAGE_TYPE_IDX]=NEAR_FINAL; - if(rec_remotepara_state&&!memcmp(&rx_buffer[TAG_ID_IDX],&dev_id,2)) - { - para_update = 1; - tx_near_msg[TAGCONFIGSUCCESS_INDEX] = 1; - para_len = frame_len-22; - memcpy(rec_remotepara,&rx_buffer[REMOTEPARA_INDEX],para_len); - } + dwt_writetxdata(28+nearbase_num*4, tx_near_msg, 0);//将发送数据写入DW1000 dwt_writetxfctrl(28+nearbase_num*4, 0);//设定发送数据长度 @@ -452,7 +446,17 @@ lastsync_timer=sync_timer; offsettimeus=ancsync_time-current_count*LPTIMER_LSB+offset; SetNextPollTime(tyncpoll_time); - + if(rec_remotepara_state&&rec_remotepara_state!=g_com_map[REMOTEPARA_STATE]) + { + g_com_map[REMOTEPARA_STATE]=rec_remotepara_state; + memcpy(rec_remotepara,&rx_buffer[REMOTEPARA_INDEX],REMOTEPARA_LEN); + memcpy(&g_com_map[COM_INTERVAL],&rec_remotepara[0],8); + memcpy(&g_com_map[POWER],&rec_remotepara[8],10); + save_com_map_to_flash(); + delay_ms(100); + NVIC_SystemReset(); + + } // count_offset=sync_count-current_count-143; // current_slottimes=(ancsync_time-10000)/(g_com_map[COM_INTERVAL]*1000); -- Gitblit v1.9.3