From f6ebd86df8922f4d2c2d252f55811550eba31873 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=83=91=E8=90=8D?= <ping.zheng@hljtyw.com> Date: Wed, 31 Jul 2024 16:36:06 +0800 Subject: [PATCH] =?UTF-8?q?=E2=9C=A8=20feat:=E7=87=83=E6=B2=B9=E6=98=BE?= =?UTF-8?q?=E7=A4=BA=E8=B0=83=E8=AF=95=E6=88=90=E5=8A=9F=EF=BC=8C=E4=BB=A5?= =?UTF-8?q?=E5=8F=8A=E5=A4=A7=E8=AE=A1=E6=98=BE=E7=A4=BA=E5=88=A4=E6=96=AD?= =?UTF-8?q?=E6=9D=A1=E4=BB=B6=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Firmware/Source/Application/Data_Fuel.c | 102 ++++----------- Firmware/Source/Component/AMT630H/AMT630H.c | 2 +- Firmware/Source/Component/AMT630H/AMT630H.h | 2 +- .../Source/Component/AMT630H/AMT630H_Datas.c | 120 ++++++++---------- Firmware/Source/Component/Components.h | 4 + Firmware/Source/System/Sys_Task_List.c | 1 + 6 files changed, 86 insertions(+), 145 deletions(-) diff --git a/Firmware/Source/Application/Data_Fuel.c b/Firmware/Source/Application/Data_Fuel.c index d012a1a..6dc237d 100644 --- a/Firmware/Source/Application/Data_Fuel.c +++ b/Firmware/Source/Application/Data_Fuel.c @@ -122,25 +122,25 @@ void Fuel_R_Cal(uint8_t deltaTime) void Fuel_State_Check(uint8_t deltaTime) { - if (FuelR < 30) - { /*çŸè·¯3*/ - g_u16FuelSensorOpenTime = 0; - g_u16FuelSensorNormalTime = 0; - if ((g_u16FuelSensorShortTime > 3000) || ((g_u8FuelStateInitFlag) && (g_u16FuelSensorShortTime > 3000))) - { - FuelSensorState = FuelSensorShortCircuit; - g_u8DesFuelSetp = 0; - g_u8CurFuelSetp = 6; - g_u8FuelStateInitFlag = 0; - g_u8FuelInitFlag = 1; - g_u8FuelDir = FUEL_SEG_UP; - } - else - { - g_u16FuelSensorShortTime += deltaTime; - } - } - else if (FuelR > 5000) + // if (FuelR < 30) + // { /*çŸè·¯3*/ + // g_u16FuelSensorOpenTime = 0; + // g_u16FuelSensorNormalTime = 0; + // if ((g_u16FuelSensorShortTime > 3000) || ((g_u8FuelStateInitFlag) && (g_u16FuelSensorShortTime > 3000))) + // { + // FuelSensorState = FuelSensorShortCircuit; + // g_u8DesFuelSetp = 0; + // g_u8CurFuelSetp = 6; + // g_u8FuelStateInitFlag = 0; + // g_u8FuelInitFlag = 1; + // g_u8FuelDir = FUEL_SEG_UP; + // } + // else + // { + // g_u16FuelSensorShortTime += deltaTime; + // } + // } + if (FuelR > 5000) { /*开路 310*/ g_u16FuelSensorShortTime = 0; g_u16FuelSensorNormalTime = 0; @@ -178,7 +178,7 @@ void Fuel_Gauges_Cal(uint8_t deltaTime) { static uint16_t time = 0; - if ((FuelSensorState == FuelSensorNormal) && (FuelR <= 3100) && (FuelR >= 30)) + if ((FuelSensorState == FuelSensorNormal) && (FuelR <= 5000))// && (FuelR >= 30) { /*采集完第一组数æ®åŽï¼Œå¼€å§‹è®¡ç®—ç‡ƒæ²¹æ ¼æ•°*/ if (g_u8FuelADCompleteFlg) @@ -298,8 +298,8 @@ void Fuel_Gauges_Cal(uint8_t deltaTime) g_u8CurFuelSetp = g_u8DesFuelSetp; } - if (time >= 15000) - { /* 15Så˜åŒ–ä¸€æ ¼ */ + if (time >= 30000) + { /* 30Så˜åŒ–ä¸€æ ¼ */ time = 0; if (g_u8CurFuelSetp < g_u8DesFuelSetp) { @@ -330,64 +330,10 @@ void Fuel_Cal_Sevice(uint8_t deltaTime) uint8_t Get_CurFuelSetp(void) { - uint8_t u8CurFuelSetp = g_u8CurFuelSetp; - if(FuelSensorState == FuelSensorOpenCircuit) - { - if(FLASH_SYNC_1Hz) - { - u8CurFuelSetp = 6; - } - else - { - u8CurFuelSetp = 0; - } - } - else if(FuelSensorState == FuelSensorShortCircuit) - { - if(FLASH_SYNC_1Hz) - { - u8CurFuelSetp = 7; - } - else - { - u8CurFuelSetp = 0; - } - } - else if(u8CurFuelSetp == 1) - { - if(FLASH_SYNC_1Hz) - { - u8CurFuelSetp = 1; - } - else - { - u8CurFuelSetp = 0; - } - } - else - { - ; - } - return u8CurFuelSetp; + return g_u8CurFuelSetp; } FuelSensorSts_t Get_Fuel_Sensor_State(void) { - uint8_t u8CurFuelSetp = 0; - if(FuelSensorState == FuelSensorOpenCircuit || g_u8CurFuelSetp == 1u) - { - if(FLASH_SYNC_1Hz) - { - u8CurFuelSetp = 2; - } - else - { - u8CurFuelSetp = 0; - } - } - else - { - u8CurFuelSetp = 1u; - } - return u8CurFuelSetp; + return FuelSensorState; } diff --git a/Firmware/Source/Component/AMT630H/AMT630H.c b/Firmware/Source/Component/AMT630H/AMT630H.c index 974f2f6..39ac4ef 100644 --- a/Firmware/Source/Component/AMT630H/AMT630H.c +++ b/Firmware/Source/Component/AMT630H/AMT630H.c @@ -160,7 +160,7 @@ void Amt630hInit(void) LcdSoundParamterData.LcdWiringMode = LCD_WIRING_MODE_BGR; LcdSoundParamterData.LcdWiringBitOrder = LCD_WIRING_BIT_ORDER_MSB; LcdSoundParamterData.LcdDotClkReverse = 0; /* NuoMa 50pin TFT */ - LcdSoundParamterData.LvdsPanelFormat = LVDS_PANEL_FORMAT_TI; + LcdSoundParamterData.LvdsPanelFormat = LVDS_PANEL_FORMAT_NS; LcdSoundParamterData.LvdsPanelData = LVDS_PANEL_DATA_8BIT; LcdSoundParamterData.LcdTimingVBP = 12; diff --git a/Firmware/Source/Component/AMT630H/AMT630H.h b/Firmware/Source/Component/AMT630H/AMT630H.h index 21b01dd..447b408 100644 --- a/Firmware/Source/Component/AMT630H/AMT630H.h +++ b/Firmware/Source/Component/AMT630H/AMT630H.h @@ -18,7 +18,7 @@ typedef struct uint8_t Result; }s_AMT630H_FlashCheck_t; -#define AMT630H_REFRESH_TIME 50U +#define AMT630H_REFRESH_TIME 25U #define AMT630H_ANIMATION_TIME 3000U //ms #define AMT630H_ANIMATION_PIC_NUM 146U diff --git a/Firmware/Source/Component/AMT630H/AMT630H_Datas.c b/Firmware/Source/Component/AMT630H/AMT630H_Datas.c index 5b392ed..0f7b9a7 100644 --- a/Firmware/Source/Component/AMT630H/AMT630H_Datas.c +++ b/Firmware/Source/Component/AMT630H/AMT630H_Datas.c @@ -28,7 +28,6 @@ void AMT630H_GUI_Background() { if (SYS_OPR_STAT_IGN_ON) { - RTE_GPIO_Set_Level(Blacklight_PWM, 1); if (MENU_MODE == SETTING_MENU) { AMT630H_GUI_SETTING(); /*设置èœå•*/ @@ -93,42 +92,6 @@ void AMT630H_GUI_Fault_Information(void) SetPagePic(GRAPHICS_PAGE_0, Pic_0283_633_175); SetPagePic(GRAPHICS_PAGE_0, Pic_0357_354_162); } - - /*日间英文*/ - else if (Pic_mode == PIC_DAYTIME_EN) - { - SetPagePic(GRAPHICS_PAGE_0, Pic_0088_47_398); - SetPagePic(GRAPHICS_PAGE_0, Pic_0084_869_397); - SetPagePic(GRAPHICS_PAGE_0, Pic_0089_193_488); - SetPagePic(GRAPHICS_PAGE_0, Pic_0086_762_487); - SetPagePic(GRAPHICS_PAGE_0, Pic_0090_435_519); - SetPagePic(GRAPHICS_PAGE_0, Pic_0091_567_356); - SetPagePic(GRAPHICS_PAGE_0, Pic_0092_368_356); - SetPagePic(GRAPHICS_PAGE_0, Pic_0093_574_292); - SetPagePic(GRAPHICS_PAGE_0, Pic_0094_375_292); - SetPagePic(GRAPHICS_PAGE_0, Pic_0095_633_240); - SetPagePic(GRAPHICS_PAGE_0, Pic_0096_338_228); - SetPagePic(GRAPHICS_PAGE_0, Pic_0095_633_175); - SetPagePic(GRAPHICS_PAGE_0, Pic_0097_334_163); - } - - /*夜间英文*/ - else if (Pic_mode == PIC_NIGHTTIME_EN) - { - SetPagePic(GRAPHICS_PAGE_0, Pic_0274_47_398); - SetPagePic(GRAPHICS_PAGE_0, Pic_0275_916_398); - SetPagePic(GRAPHICS_PAGE_0, Pic_0276_193_488); - SetPagePic(GRAPHICS_PAGE_0, Pic_0277_728_486); - SetPagePic(GRAPHICS_PAGE_0, Pic_0278_435_519); - SetPagePic(GRAPHICS_PAGE_0, Pic_0279_567_356); - SetPagePic(GRAPHICS_PAGE_0, Pic_0280_368_356); - SetPagePic(GRAPHICS_PAGE_0, Pic_0281_574_292); - SetPagePic(GRAPHICS_PAGE_0, Pic_0282_375_292); - SetPagePic(GRAPHICS_PAGE_0, Pic_0283_633_240); - SetPagePic(GRAPHICS_PAGE_0, Pic_0284_338_228); - SetPagePic(GRAPHICS_PAGE_0, Pic_0283_633_175); - SetPagePic(GRAPHICS_PAGE_0, Pic_0285_334_163); - } } /** * @brief 显示模å¼ä¿¡æ¯ 一级èœå• @@ -2225,16 +2188,16 @@ static void AMT630H_GUI_TIME(uint16_t Hour, uint16_t Minute) // } /*燃油显示函数*/ -uint16_t g_u16_GUI_PerFuelLevel = 1; -static void AMT630H_GUI_Fuel(uint16_t Fuel) +uint8_t g_u16_GUI_PerFuelLevel = 1; +static void AMT630H_GUI_Fuel(uint8_t Fuel) { /*å¤–éƒ¨ä¼ å‚ç‡ƒæ²¹å¤„äºŽæ•°ç»„ç¬¬å‡ æ ¼*/ /*R>83且处于éžå¼€è·¯çŠ¶æ€æ—¶ 黄色燃油ç¯é—ªçƒ*/ /*Rå¼€è·¯çŠ¶æ€æ—¶ 黄色燃油ç¯é—ªçƒ*/ /*ä»¥ä¸Šä¸¤ç§æƒ…况黄色燃油ç¯é—ªçƒçš„频率ä¸åŒ*/ - uint16_t FuelLevel; + uint8_t FuelLevel; FuelLevel = Fuel; - + static uint8_t s_FuelLowTime = 0U; if ((Pic_mode == PIC_DAYTIME_Main_CH) || (Pic_mode == PIC_DAYTIME_Main_EN)) { SetPagePic(GRAPHICS_PAGE_0, Pic_0553_315_473); /*ç‡ƒæ²¹æ ¼*/ @@ -2246,10 +2209,24 @@ static void AMT630H_GUI_Fuel(uint16_t Fuel) { SetPagePic(GRAPHICS_PAGE_0, Pic_0552_503_529); /*黄色燃油ç¯*/ } + s_FuelLowTime = 0; + } + else if (FuelLevel == 1) + { + s_FuelLowTime++; + if (s_FuelLowTime < 15) + { + SetPagePic(GRAPHICS_PAGE_0, Pic_0552_503_529); /*黄色燃油ç¯*/ + } + if (s_FuelLowTime == 20) + { + s_FuelLowTime = 0; + } } else { SetPagePic(GRAPHICS_PAGE_0, Pic_0551_503_529); /*黑色燃油ç¯*/ + s_FuelLowTime = 0; } } else if ((Pic_mode == PIC_NIGHTTIME_Main_CH) || (Pic_mode == PIC_NIGHTTIME_Main_EN)) @@ -2307,21 +2284,27 @@ static void AMT630H_GUI_Voltage(uint16_t Voltage) { if ((Pic_mode == PIC_DAYTIME_Main_CH) || (Pic_mode == PIC_DAYTIME_Main_EN)) { - SetPagePic(GRAPHICS_PAGE_0, Pic_0563_923_407); /*ç”µåŽ‹å›¾æ ‡*/ DISPLAY_NUM_ST DisplayNumPara; uint16_t VoltageNumber; VoltageNumber = Voltage / 10; + if (Voltage % 10 > 5) + { + VoltageNumber++; + } uint16_t Voltage_Hundred; uint16_t Voltage_Ten; uint16_t Voltage_Unit; uint16_t Front; - + if ((VoltageNumber <= 120) || (VoltageNumber > 150)) + { + SetPagePic(GRAPHICS_PAGE_0, Pic_0563_923_407); /*ç”µåŽ‹å›¾æ ‡*/ + } /*æ•°æ®å¤„ç†*/ Voltage_Hundred = VoltageNumber / 100; Voltage_Ten = (VoltageNumber % 100) / 10; Voltage_Unit = VoltageNumber % 10; - Front = Voltage_Ten * 10 + Voltage_Unit; + Front = Voltage_Hundred * 10 + Voltage_Ten; DisplayNumPara.NumList = NumbeList_Voltage_DAY; if ((VoltageNumber >= 100) && (VoltageNumber < 1000)) @@ -2424,44 +2407,44 @@ static void AMT630H_GUI_Voltage(uint16_t Voltage) /*大计里程显示函数*/ static void AMT630H_GUI_ODO(uint32_t ODO, uint8_t mode) { - if((PIC_DAYTIME_Main_CH) && (PIC_DAYTIME_Main_EN)) + if ((Pic_mode == PIC_DAYTIME_Main_CH) || (Pic_mode == PIC_DAYTIME_Main_EN)) { /*ODO使•°ä¸åŒ KMä½ç½®ä¸åŒ*/ - SetPagePic ( GRAPHICS_PAGE_0 , Pic_0577_48_272 ) ; - SetPagePic ( GRAPHICS_PAGE_0 , Pic_0578_55_296 ) ; - SetPagePic ( GRAPHICS_PAGE_0 , Pic_0580_211_324 ) ; + SetPagePic(GRAPHICS_PAGE_0, Pic_0577_48_272); + SetPagePic(GRAPHICS_PAGE_0, Pic_0578_55_296); + SetPagePic(GRAPHICS_PAGE_0, Pic_0580_211_324); DISPLAY_NUM_ST DisplayNumPara; uint16_t ODONumber; - ODONumber =ODO; + ODONumber = ODO; DisplayNumPara.NumList = NumbeList_ODO_DAY; DisplayNumPara.x = 173; - DisplayNumPara.NumInterval = GROUP_PIC_DIR_LEFT |24; - DisplayNumPara.y = GROUP_PIC_USE_PSD_Y_POS; + DisplayNumPara.NumInterval = GROUP_PIC_DIR_LEFT | 24; + DisplayNumPara.y = GROUP_PIC_USE_PSD_Y_POS; DisplayNumPara.DecimalNum = 0; - DisplayNumPara.MinDigits =6; - DisplayNum(GRAPHICS_PAGE_0, &DisplayNumPara,ODONumber); + DisplayNumPara.MinDigits = 6; + DisplayNum(GRAPHICS_PAGE_0, &DisplayNumPara, ODONumber); } - else if((PIC_NIGHTTIME_Main_CH) && (PIC_NIGHTTIME_Main_EN)) + else if ((Pic_mode == PIC_NIGHTTIME_Main_CH) || (Pic_mode == PIC_NIGHTTIME_Main_EN)) { /*ODO使•°ä¸åŒ KMä½ç½®ä¸åŒ*/ - SetPagePic ( GRAPHICS_PAGE_0 , Pic_0685_48_272 ) ; - SetPagePic ( GRAPHICS_PAGE_0 , Pic_0686_55_296 ) ; - SetPagePic ( GRAPHICS_PAGE_0 , Pic_0688_211_324 ) ; + SetPagePic(GRAPHICS_PAGE_0, Pic_0685_48_272); + SetPagePic(GRAPHICS_PAGE_0, Pic_0686_55_296); + SetPagePic(GRAPHICS_PAGE_0, Pic_0688_211_324); DISPLAY_NUM_ST DisplayNumPara; uint16_t ODONumber; - ODONumber =ODO; + ODONumber = ODO; DisplayNumPara.NumList = NumbeList_ODO_NIGHT; DisplayNumPara.x = 173; - DisplayNumPara.NumInterval = GROUP_PIC_DIR_LEFT |24; - DisplayNumPara.y = GROUP_PIC_USE_PSD_Y_POS; + DisplayNumPara.NumInterval = GROUP_PIC_DIR_LEFT | 24; + DisplayNumPara.y = GROUP_PIC_USE_PSD_Y_POS; DisplayNumPara.DecimalNum = 0; - DisplayNumPara.MinDigits =6; - DisplayNum(GRAPHICS_PAGE_0, &DisplayNumPara,ODONumber); + DisplayNumPara.MinDigits = 6; + DisplayNum(GRAPHICS_PAGE_0, &DisplayNumPara, ODONumber); } else @@ -2697,9 +2680,16 @@ void AMT630H_GUI_BACKGRAND() AMT630H_GUI_TIME(Get_Dis_Hour_Time(), Get_Dis_Minute_Time()); /* AMT630H_GUI_Telephone(Telephone); */ - AMT630H_GUI_Fuel(0); - AMT630H_GUI_Voltage(123); - AMT630H_GUI_ODO(Get_ODO_Value() / 10,0); + if(Get_Fuel_Sensor_State() == FuelSensorNormal) + { + AMT630H_GUI_Fuel(Get_CurFuelSetp()); + } + else + { + AMT630H_GUI_Fuel(0); + } + AMT630H_GUI_Voltage((ADC_Read_Signal(ADC_CH_KL30_VOLTAGE)) / 10); + AMT630H_GUI_ODO(Get_ODO_Value() / 10, 0); if (Get_VechileSpeedValid() == 1) { AMT630H_GUI_VSpeed(Get_DispVechileSpeed() / 10); diff --git a/Firmware/Source/Component/Components.h b/Firmware/Source/Component/Components.h index 03c37bc..c222eac 100644 --- a/Firmware/Source/Component/Components.h +++ b/Firmware/Source/Component/Components.h @@ -26,6 +26,10 @@ #include "AMT630H\AMT630H_Datas.h" #include "Data_ESpeed.h" #include "Data_VSpeed.h" +#include "Data_Coolant.h" +#include "Data_Fuel.h" +#include "Data_Coolant.h" +#include "Mileage\Services_Mileage_User.h" #include "BackLight.h" #include "RTC\RTE_RTC.h" #include "CAN_Signal\CAN_Lib.h" diff --git a/Firmware/Source/System/Sys_Task_List.c b/Firmware/Source/System/Sys_Task_List.c index 5875492..f54566a 100644 --- a/Firmware/Source/System/Sys_Task_List.c +++ b/Firmware/Source/System/Sys_Task_List.c @@ -51,6 +51,7 @@ void Sys_100ms_Tasks(void) Get_DisTime_Service(); Fuel_Cal_Sevice(100u); Services_Mileage_Callback(); + RTE_GPIO_Set_Level(Blacklight_PWM, 1); } static uint16_t task_2ms = 0u; void Sys_Exact_50us_Tasks(void) -- 2.23.0