From 8b4b676312f925f4335b9d3ebdfe498cba2c8495 Mon Sep 17 00:00:00 2001 From: zhyinch <zhyinch@gmail.com> Date: 星期三, 07 四月 2021 09:44:24 +0800 Subject: [PATCH] V1.20 增加震动使能控制 --- Src/application/dw_app.c | 28 +++++++++++++++++----------- 1 files changed, 17 insertions(+), 11 deletions(-) diff --git a/Src/application/dw_app.c b/Src/application/dw_app.c index 271fdc8..05052a3 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. */ @@ -315,7 +315,7 @@ last_nearbase_num=next_nearbase_num; nearbase_num=next_nearbase_num; recbase_num=0; - motor_state=0; +// motor_state=0; tx_near_msg[BATTARY_IDX] = bat_percent; tx_near_msg[BUTTON_IDX] = !GET_USERKEY|stationary_flag<<1; @@ -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); @@ -516,6 +520,8 @@ } // dwt_write32bitreg(SYS_STATUS_ID,SYS_STATUS_RXFCG| SYS_STATUS_ALL_RX_ERR); } + if(mainbase_lost_count>tag_frequency*BASELOST_STOPMOTOR_TIME) + {motor_state=0; } dwt_write32bitreg(SYS_STATUS_ID,SYS_STATUS_RXFCG| SYS_STATUS_ALL_RX_ERR); nearbase_num=recbase_num; j=0; -- Gitblit v1.9.3