From e4d167a7d5e73b58a7d4adbc8b91499dc1e2d4c4 Mon Sep 17 00:00:00 2001 From: zhangbo <zhangbo@qq.com> Date: 星期二, 01 四月 2025 11:08:41 +0800 Subject: [PATCH] 低功耗,逻辑正确,现在室外40ma,室内20ma电流 --- keil/include/src/GPS.c | 42 ++++++++++++++++++++---------------------- 1 files changed, 20 insertions(+), 22 deletions(-) diff --git a/keil/include/src/GPS.c b/keil/include/src/GPS.c index a8404ea..65cf84a 100644 --- a/keil/include/src/GPS.c +++ b/keil/include/src/GPS.c @@ -21,7 +21,7 @@ /**************************************************************************************************************************************/ #define ARRAY_SIZE 60 uint8_t Gsv_count = 0; // 已存储的数据个数 -uint8_t lounei_flag; +uint8_t lounei_flag=0; /**************************************************************************************************************************************/ typedef enum { @@ -495,9 +495,7 @@ extern uint16_t g_spsum_GSV,g_snum_GSV; extern uint16_t g_spsum_GSV_sum; extern uint16_t g_snum_GSV_sum; -//static HIDO_UINT8 l_u8GPSBuff[512]; -//static HIDO_UINT32 l_u8GPSLen = 0; -//static HIDO_UINT32 l_u8GPSRecvTick = 0; +extern uint8_t heart_upload_time; static HIDO_INT32 GPS_ParseGGA(HIDO_CHAR *_pcData, HIDO_UINT32 _u32Len) { uint16_t state_flag; @@ -505,7 +503,7 @@ HIDO_DataStruct stPosState; jinru_parsegga_flag=1; memset(&stGPS, 0, sizeof(ST_GPS)); - ave_sp_GSV=g_spsum_GSV; +// ave_sp_GSV=g_spsum_GSV; if (GPS_DataCheck(_pcData, _u32Len) != HIDO_OK) { return HIDO_ERR; @@ -555,9 +553,14 @@ gpsbaoxu++; GPS_ParseGGA_changdu=u32Len; } - UDPClient_UploadGPS(); + gps_ntripsend=1; - NTRIPApp_ReportGGA(GPS_ParseGGA_data, _u32Len); + if(heart_upload_time%UPLOAD_4G_TIME==0&&lounei_flag==0) + { + UDPClient_UploadGPS(); + NTRIPApp_ReportGGA(GPS_ParseGGA_data, _u32Len); + } + ave_sp_GSV=0; g_spsum_GSV=0; // g_spsum_GSV_sum=0; @@ -940,13 +943,13 @@ *******************************************************************************/ uint16_t GSV_sum; uint16_t GSV_g_snum_sum; -uint16_t g_spsum_GSV_sum=0; -uint16_t g_snum_GSV_sum=0; +uint16_t g_spsum_GSV_sum=300; +uint16_t g_snum_GSV_sum=10; void Receive_g_spsum_Data(int newData) { GSV_sum +=newData; if (Gsv_count < ARRAY_SIZE) { - Gsv_count++; // 如果数组未满,增加已存储的数据个数 + Gsv_count++; } if(Gsv_count==60) { @@ -975,18 +978,13 @@ * Output : * Return : *******************************************************************************/ -extern uint8_t heart_upload_time; -void Switch_low_power_mode(int mode) + +void Switch_low_power_mode() { - switch(mode) + if(lounei_flag==0) { - case 0: PCA9555_Set_One_Value_Output(GPS_POWER,0); - PCA9555_Set_One_Value_Output(LED_POWER,0); - break; - - case 1: PCA9555_Set_One_Value_Output(GPS_POWER,1); - PCA9555_Set_One_Value_Output(LED_POWER,1); - heart_upload_time=0; - break; - } + PCA9555_Set_One_Value_Output(GPS_POWER,1); + PCA9555_Set_One_Value_Output(LED_POWER,1); + } + } \ No newline at end of file -- Gitblit v1.9.3