From 34ed79bf13ca72335e5bfd0434668fbccf0b1744 Mon Sep 17 00:00:00 2001 From: yincheng.zhong <634916154@qq.com> Date: 星期二, 07 二月 2023 17:15:29 +0800 Subject: [PATCH] 1 --- Src/application/dw_app.c | 29 +++++++++++++++++++---------- 1 files changed, 19 insertions(+), 10 deletions(-) diff --git a/Src/application/dw_app.c b/Src/application/dw_app.c index eb43c67..0bc8c12 100644 --- a/Src/application/dw_app.c +++ b/Src/application/dw_app.c @@ -766,7 +766,9 @@ // tyncpoll_time = (tagslotpos--%max_slotpos)*slottime; } } - +extern float nomove_count; +uint8_t pack_length = 0,pack_index = 0,pack_msgtype = 0; +uint8_t motor_flag; void NearPoll(void) { @@ -790,9 +792,15 @@ recbase_num=0; // motor_state=0; + if(motor_keeptime>0) + { + motor_flag = 1; + }else{ + motor_flag = 0; + } tx_near_msg[BATTARY_IDX] = bat_percent; - tx_near_msg[BUTTON_IDX] = userkey_state|stationary_flag<<1|gotosleep_flag<<2; + tx_near_msg[BUTTON_IDX] = userkey_state|stationary_flag<<1|gotosleep_flag<<2|motor_flag<<5; tx_near_msg[SEQUENCE_IDX] = frame_seq_nb; tx_near_msg[SEQUENCEH_IDX] = (frame_seq_nb++)>>8; tx_near_msg[NEARBASENUM_INDEX] = nearbase_num; @@ -824,7 +832,7 @@ } } dwt_starttx(DWT_START_TX_IMMEDIATE | DWT_RESPONSE_EXPECTED);//开启发送,发送完成后等待一段时间开启接收,等待时间在dwt_setrxaftertxdelay中设置 - HAL_GPIO_WritePin(LED1_G_GPIO_Port, LED1_G_Pin, GPIO_PIN_RESET); +// HAL_GPIO_WritePin(LED1_G_GPIO_Port, LED1_G_Pin, GPIO_PIN_RESET); // for(i=0;i<nearbase_num+1;i++) // { // nearbase_distlist[i] = 0x1ffff; @@ -985,7 +993,7 @@ {flag_finalsend = 2;} dwt_forcetrxoff(); dwt_write32bitreg(SYS_STATUS_ID,SYS_STATUS_RXFCG| SYS_STATUS_ALL_RX_ERR); - HAL_GPIO_WritePin(LED1_G_GPIO_Port, LED1_G_Pin, GPIO_PIN_SET); +// HAL_GPIO_WritePin(LED1_G_GPIO_Port, LED1_G_Pin, GPIO_PIN_SET); if(mainbase_lost_count==0) { #ifdef SWITCHBASE_DIST @@ -1017,7 +1025,7 @@ if(para_update) { - uint8_t pack_length = 0,pack_index = 0,pack_msgtype = 0; + pack_msgtype = rec_remotepara[0]; pack_index = rec_remotepara[1]; pack_length = rec_remotepara[2]; @@ -1025,11 +1033,12 @@ { if( pack_index == MOTOR_ONTIME_INDEX) { - if(motor_keeptime==0) + // if(motor_keeptime==0) motor_keeptime = rec_remotepara[3]; }else{ if(pack_index<200) { + nomove_count = 0; memcpy((uint8_t*)&g_com_map + pack_index, &rec_remotepara[3], pack_length); //返回一个error状态 //SendComMap(pack_datalen,pack_index); @@ -1085,7 +1094,7 @@ dwt_starttx(DWT_START_TX_IMMEDIATE | DWT_RESPONSE_EXPECTED);//开启发送,发送完成后等待一段时间开启接收,等待时间在dwt_setrxaftertxdelay中设置 while (!((status_reg = dwt_read32bitreg(SYS_STATUS_ID)) & (SYS_STATUS_RXFCG | SYS_STATUS_ALL_RX_ERR)))//不断查询芯片状态直到成功接收或者发生错误 { - IdleTask(); +// IdleTask(); }; if(status_reg==0xffffffff) @@ -1147,8 +1156,6 @@ //LED0_ON; SPIx_CS_GPIO->BRR = SPIx_CS; delay_us(700); - // GetPressAndHeight(); - // intheight = Height*100; SPIx_CS_GPIO->BSRR = SPIx_CS; id = dwt_readdevid() ; while (DWT_DEVICE_ID != id) @@ -1158,7 +1165,7 @@ IdleTask(); if(error_times++>20) { - printf("DW ID ERROR.\r\n"); + //printf("DW ID ERROR.\r\n"); SCB->AIRCR = 0X05FA0000|(unsigned int)0x04; //软复位回到bootloader } } @@ -1187,6 +1194,8 @@ break; case NEARPOLL: NearPoll(); + // GetPressAndHeight(); + //intheight = Height*100; break; case SINGLEPOLL: Poll(); -- Gitblit v1.9.3