From 2656eff0472262bd13bab16b41a3176a52895d69 Mon Sep 17 00:00:00 2001 From: zhangbo <zhangbo@qq.com> Date: 星期五, 25 七月 2025 16:46:18 +0800 Subject: [PATCH] 添加了运动静止位,V2.15 --- keil/include/main/main.c | 56 +++++++++++++++++++++++++++++++++++++------------------- 1 files changed, 37 insertions(+), 19 deletions(-) diff --git a/keil/include/main/main.c b/keil/include/main/main.c index 22c3856..4d17e3a 100644 --- a/keil/include/main/main.c +++ b/keil/include/main/main.c @@ -181,7 +181,7 @@ { bat_percent = 0; } - else if(fVoltage_mv > 4200) + else if(fVoltage_mv > 4100) { bat_percent = 100; } @@ -272,6 +272,7 @@ userkey_state = 1; keystarttime3 = HIDO_TimerGetTick(); flag_first_TCPconnect = 1; +// TCPHeartBeatUpload(); //UDPClient_UploadGPS(); } // if(HIDO_TimerGetTick() - keystarttime2>10) @@ -317,15 +318,22 @@ keystarttime2 = HIDO_TimerGetTick(); } } +uint8_t guanjiflag_count=0; void MinuteTask(void) { PCA9555_Set_One_Value_Output(ADC_MINIUS,0);//拉低 delay_ms(100); adc_get(&sample[0], NUM_SAMPLES, adc_callback);//adc采样 + if(bat_percent<1) + { + guanjiflag_count++; + } + } +uint8_t jingzhi_flag=0; void SecondTask(void) { static uint8_t second_count; - if(second_count++>120) + if(second_count++>60) { second_count = 0; MinuteTask(); @@ -354,6 +362,10 @@ HIDO_TimerTick(); // if(nomove_count<=g_com_map[NOMOVESLEEP_TIME])//防止溢出 nomove_count++; + if(nomove_count>g_com_map[ALARM_DISTANCE1]) + { + jingzhi_flag=1; + } // gaodu=GetPressAndHeight()*100; // else{ // nomove_count=g_com_map[NOMOVESLEEP_TIME]+1; @@ -409,7 +421,7 @@ input5v_time=1; flag_secondtask = 1; led_flag=1; - if(g_com_map[UWBFrequency]>1) + if(g_com_map[UWBFrequency]>1||current_state==STATE_SLEEP) { uwb_time_count++; } @@ -435,7 +447,7 @@ } input5v_time=1; - if(taglist_num==0&&g_com_map[UWBFrequency]==1&&g_com_map[UWBENBLE]==1&&uwb_OpenClose_flag==1) + if(taglist_num==0&&g_com_map[UWBFrequency]==1&&g_com_map[UWBENBLE]==1&&uwb_OpenClose_flag==1&¤t_state == STATE_NORMAL) { CloseUWB(); Uwb_init(); @@ -531,6 +543,7 @@ // g_com_map[GROUP_ID]=9; group_id=g_com_map[GROUP_ID];//组ID memcpy(&disoffset,&g_com_map[DIST_OFFSET],2); +// g_com_map[ALARM_DISTANCE1]=10; warning_distance=g_com_map[ALARM_DISTANCE1]; prewarning_distance=g_com_map[ALARM_DISTANCE2]; send_struct.warnDistence=warning_distance; @@ -581,7 +594,7 @@ g_com_map[MODBUS_MODE] = 0; log_4g_enable_flag =1;//g_com_map[LOG_4G_ENABLE]; - g_com_map[VERSION] = (2<<8)|10; + g_com_map[VERSION] = (2<<8)|15; LOG_INFO(TRACE_MODULE_APP,"设备ID: %x .\r\n",dev_id); @@ -763,15 +776,15 @@ // uart1_change_from_debug_to_gps();//测试 // PCA9555_Set_One_Value_Output(MCU_A,0);//输出低电平切换为GPS //保留串口输出到debug口这样可以看到看门狗的复位 - //关闭电源前检查PCA输出脚的电平保证不供电在关闭电源脚 - PCA9555_Set_One_Value_Output(LED_POWER,0);//输出低电平关闭LED - PCA9555_Set_One_Value_Output(TTS_ENABLE,0); - PCA9555_Set_One_Value_Output(AIR780E_ENBALE,0); - PCA9555_Set_One_Value_Output(GPS_POWER,0);//关GPS - delay_ms(200); +// //关闭电源前检查PCA输出脚的电平保证不供电在关闭电源脚 +// PCA9555_Set_One_Value_Output(LED_POWER,0);//输出低电平关闭LED +// PCA9555_Set_One_Value_Output(TTS_ENABLE,0); +// PCA9555_Set_One_Value_Output(AIR780E_ENBALE,0); +// PCA9555_Set_One_Value_Output(GPS_POWER,0);//关GPS +// delay_ms(200); - PCA9555_Set_One_Value_Output(PWR_ENABLE,0);//低电平关闭 - +// PCA9555_Set_One_Value_Output(PWR_ENABLE,0);//低电平关闭 + PCA9555_Close_Power(); } } @@ -800,7 +813,7 @@ { WT588E_PLAY(14); } - if(bat_percent<1&&bat_percent_only_one&&jiancebat_percent_flag) + if(bat_percent<1&&bat_percent_only_one&&jiancebat_percent_flag&&(guanjiflag_count>9)) { WT588E_PLAY(15); userkey_state=3; @@ -818,11 +831,12 @@ Set4LEDColor(uwbled,rtkled,led4g,powerled); if(HIDO_TimerGetTick() - guanjiflagtime>3) { - PCA9555_Set_One_Value_Output(TTS_ENABLE,0); //关闭语音输入 - PCA9555_Set_One_Value_Output(LED_POWER,0); //输出低电平关闭LED - PCA9555_Set_One_Value_Output(AIR780E_ENBALE,0); - PCA9555_Set_One_Value_Output(GPS_POWER,0); //关GPS - PCA9555_Set_One_Value_Output(PWR_ENABLE,0); //低电平关闭 +// PCA9555_Set_One_Value_Output(TTS_ENABLE,0); //关闭语音输入 +// PCA9555_Set_One_Value_Output(LED_POWER,0); //输出低电平关闭LED +// PCA9555_Set_One_Value_Output(AIR780E_ENBALE,0); +// PCA9555_Set_One_Value_Output(GPS_POWER,0); //关GPS +// PCA9555_Set_One_Value_Output(PWR_ENABLE,0); //低电平关闭 + PCA9555_Close_Power(); } } @@ -847,6 +861,7 @@ uint8_t GPS_UPLOAD_FLAG=0; uint32_t elapsed_time_jibu; extern uint8_t uwb_OpenClose_flag; +uint8_t uwb_close_count,uwb_close_count1; void upload_apppoll() { @@ -880,6 +895,7 @@ case UWB_OPEN_COUNT: CloseUWB(); UWBSendUDPTask(); +// uwb_close_count++; break; case UWB_MEASUREMENT_INTERVAL_SLEEP: @@ -888,6 +904,7 @@ Uwb_init(); OpenUWB(); state_start_time = uwb_time_count; +// uwb_close_count1++; break; } } @@ -1069,6 +1086,7 @@ } IMUTask(); IdleTask(); +// PCA9555_low_power_consumption(); check_step_and_update_state(); led_offtask(); } -- Gitblit v1.9.3