Commit 84c54e02 authored by hu's avatar hu

修改OFF档RTC计时器位置,不在二次初始化,修改开机动画上电时序,调整背光逻辑,BUG:从OFF直接ON闪屏一次。

parent bfa297ce
......@@ -101,7 +101,7 @@ void BackLightDamp(uint8_t TimeX)
;
}
}
if ((IgnOnKeepMs > IGN_ON_BACK_LIGHT_DELAY_MS) || (IgnOffKeepMs > IGN_ON_BACK_LIGHT_DELAY_MS))
if ((IgnOnKeepMs > IGN_ON_BACK_LIGHT_DELAY_MS) || (IgnOffKeepMs > IGN_OFF_BACK_LIGHT_DELAY_MS))
{
for (i = 0u; i < BACKLIGHT_TOTAL; i++)
{
......@@ -437,6 +437,15 @@ void BackLightDeal(BL_USER_PARA BL_FunPara, BL_STATE_PARA BLFunStatePara)
Water_Temp_Led_R_MCU_OUT = 0u;
}
for ( i = 0u; i < BACKLIGHT_TOTAL; i++)
{
if ((BackLightPara[i].DestBackLightDuty != 0u) && (PwmStopFlag[i] == 1u))
{
BGLPwm_Start(i);
PwmStopFlag[i] = 0u;
}
}
}
else if ((BL_FunPara.BL_User_WakeFlag) && (BL_FunPara.BL_User_PowerSt == BGL_IGN_OFF))
{
......
......@@ -30,6 +30,13 @@ typedef struct
BlOFFCtrlStruct BlOFFCtrl;
SEGLCDBackupStruct SEGLCDBackup;
uint16_t BackLightVLv = 10u;
uint16_t testBG = 500;
uint16_t BackLightOFF_TIME = 0u;
uint16_t BackLightOFFFlag = 0;
uint8_t BackLightTestIG = 1u;
uint8_t BackLightWakeFlag = 0u;
uint8_t BackLightTPostLight = 0u;
uint8_t WARNING_DOOR_STATUS;
uint32_t Left_Right_Delay;
......@@ -39,12 +46,7 @@ void BL_Init(void)
{
SEG_LCD_Init();
}
uint16_t BackLightVLv = 10u;
uint8_t BackLightTestIG = 1u;
uint8_t BackLightWakeFlag = 0u;
uint8_t BackLightTPostLight = 0u;
uint16_t testBG = 500;
uint16_t BackLightOFF_TIME = 0u;
/*-------------------------------------------------------------------------
* Function Name : BL_Management_service
* Description : 100ms任务
......@@ -66,6 +68,7 @@ void BL_Management_service(void)
uint8_t DutyCycle;
uint8_t ILL = 0;
uint32_t Get_Menu_Off_Time = 0u;
if (Line_In_Get_Status(LINE_IN_ILLUMINATION))
{
......@@ -96,7 +99,12 @@ void BL_Management_service(void)
if (Common_Get_IG_Sts() == COMMON_POWER_OFF)
{
if (BackLightOFF_TIME < 150u)
BackLightOFFFlag = 0;
Get_Menu_Off_Time = Coom_Get_Menu_Off_Time();
//if (BackLightOFF_TIME < 3000)
if ((State_Flag.Menu_Key_Static == 1u) && (Get_Menu_Off_Time < 150000))
{
BackLightOFF_TIME++;
......@@ -105,15 +113,30 @@ void BL_Management_service(void)
}
else
{
State_Flag.Menu_Key_Static = 0;
BackLightWakeFlag = 0u;
SEG_LCD_Window_Switch(0);
}
}
else
{
State_Flag.Menu_Key_Static = 0;
if (BackLightOFFFlag <= 50)
{
BackLightOFFFlag++;
}
if (BackLightOFFFlag >= 5)
{
SEG_LCD_Window_Switch(1);
}
else
{
SEG_LCD_Window_Switch(0);
}
BackLightOFF_TIME = 0u;
BackLightWakeFlag = 0u;
SEG_LCD_Window_Switch(1);
}
/*得到主题模式可自己在枚举中定义 在BackGroundLight.c里填表*/
......@@ -130,6 +153,7 @@ void BL_Management_service(void)
GetBGLNTCVol(0);
/*主函数中调用第一个参数电源状态 1是 ON档 2 off 第二个参数 唤醒条件 1是TTF唤醒 2 是表盘唤醒 3 是表盘和屏都有唤醒,0无唤醒*/
BackLightSchedu(Common_Get_IG_Sts(), BackLightWakeFlag);
}
......
#ifndef _BACKGROUND_LIGHT_H
#define _BACKGROUND_LIGHT_H
#include "BGLInterface.h"
#define uint8_t unsigned char
#define uint16_t unsigned short/*3360 324*/
/*#define uint8_t unsigned char*/
/*#define uint16_t unsigned short/*3360 324*/
/*#define uint16_t unsigned int*/ /*Freesecale */
/*#define uint32_t unsigned long*//*Freesecale */
#define uint32_t unsigned int
/*#define uint32_t unsigned int*/
#define IGN_ON_BACK_LIGHT_DELAY_MS 400u
#define IGN_OFF_BACK_LIGHT_DELAY_MS 10u
#define BACKLIGHT_LV100 0u
#define BACKLIGHT_LV80 1u
#define BACKLIGHT_LV40 2u
......
......@@ -1295,6 +1295,7 @@ void Key_Operation_ODOTrip(Key_Event_en_t enKeyEvent)
{
uint16_t DispVSpeed = 0u;
UElib_uint16_t HMI_MENU_Sta = 0u;
uint8_t PowerStatus;
HMI_Set_KEY_ODOTRIP(enKeyEvent);
......@@ -1307,28 +1308,37 @@ void Key_Operation_ODOTrip(Key_Event_en_t enKeyEvent)
}
else if (enKeyEvent == KEY_EVENT_SHORT_PRESS)
{
if (HMI_MENU_Sta == Display_StartAnimation)
PowerStatus = Common_Get_IG_Sts();
if (PowerStatus == COMMON_POWER_ON)
{
if (MenuFlag.Key_MenuTest_ShortNum < 100u)
if (HMI_MENU_Sta == Display_StartAnimation)
{
MenuFlag.Key_MenuTest_ShortNum++;
if (MenuFlag.Key_MenuTest_ShortNum < 100u)
{
MenuFlag.Key_MenuTest_ShortNum++;
}
}
}
else if (bCurMenuIDX == _MN_DSP_Menu_Test)
{
else if (bCurMenuIDX == _MN_DSP_Menu_Test)
{
}
else if (User_set_Num.Trip_Type == TRAPA)
{
User_set_Num.Trip_Type = TRAPB;
}
else if (User_set_Num.Trip_Type == TRAPB)
{
User_set_Num.Trip_Type = TRAPA;
}
else if (User_set_Num.Trip_Type == TRAPA)
{
User_set_Num.Trip_Type = TRAPB;
}
else if (User_set_Num.Trip_Type == TRAPB)
{
User_set_Num.Trip_Type = TRAPA;
}
else
{
;/*Do Nothing !*/
}
}
else
{
;/*Do Nothing !*/
State_Flag.Menu_Key_Static = 1u;
}
}
else if (enKeyEvent == KEY_EVENT_LONG_PRESS)
......
......@@ -48,6 +48,8 @@
#include "kwp2000_protocol.h"
#include "kwp2000_service.h"
#include "RTE_TIME.h"
#define POWER_NM_SLEEP 0U
#define POWER_NM_WAKEUP 1U
......@@ -59,6 +61,7 @@ static uint8_t PowerGetNMStatus(void);
Power_Status_t Power_KL30_Init ( void )
{
Power_Status_t u8PowerSts;
RTE_RTC_KL30_Init();
/*电源 指示灯 硬线 通用信息部分 赵建智 维护开始*/
ClearNoInitArea();
Common_DataInit();
......@@ -283,8 +286,11 @@ Power_Status_t Power_Stay_OFF(void)
Power_Status_t u8PowerSts;
uint8_t u8Condition1;
uint8_t u8Condition2;
uint32_t Get_Menu_Off_Time;
u8Condition1 = Common_Get_IG_Sts() ;
u8Condition2 = Common_Get_IG_Sts_Valid();
Get_Menu_Off_Time = Coom_Get_Menu_Off_Time();
if ((u8Condition1 == COMMON_POWER_ON ) && (u8Condition2 == COMMON_Valid))
{
......@@ -294,7 +300,11 @@ Power_Status_t Power_Stay_OFF(void)
{
if ((u8Condition1 == COMMON_POWER_OFF ) && (u8Condition2 == COMMON_Valid))
{
if ((PowerGetNMStatus() == POWER_NM_SLEEP) && (LED_WAKEUP == LEVEL_LOW))
if (
(PowerGetNMStatus() == POWER_NM_SLEEP) &&
(LED_WAKEUP == LEVEL_LOW) &&
(Get_Menu_Off_Time >= 150100u)
)
{
u8PowerSts = m_IGN_Sleep_Init;
}
......
......@@ -89,6 +89,10 @@ void GUI_Display_background(void)
{
GUI_General_Display(WET_Sprite, ditu_2, GUI_BLENDMODE_CUSTOM);
}
void GUI_Display_backgroundOFF(void)
{
GUI_General_Display(WET_Sprite, quanping_black, GUI_BLENDMODE_CUSTOM);
}
/*开机动画*/
void GUI_Display_Animation_Frame(uint16_t frame)
{
......@@ -155,7 +159,7 @@ void GUI_Display_Value_Init(void)
User_App.User_Company = 1u ;
User_App.User_Light1 = K_Line_Set.User_Light1 ;
User_App.User_Light2 = K_Line_Set.User_Light2 ;
User_App.Trip_Type = 0u;
User_App.Trip_Type = 1u;
/*保养状态标识*/
if (K_Line_Set.K_Line_LID4F)
......@@ -1870,34 +1874,40 @@ void GUI_Time_OilTemp_Display(uint8_t Mode)
void GUI_Time_OilTemp_OFF_Display(uint8_t Mode)
{
uint32_t Temp = 0u;
uint32_t Get_Menu_Off_Time = 0u;
if (Mode == GUI_DISP_MODE_NORMAL)
{
Temp = Get_ID_18FEE518_Sig_Total_Engine_Hours();
/*时间*/
GUI_General_Display(MENU_Sprite, CN_Time_wenzi, GUI_BLENDMODE_SRC_OVER); /*时间*/
GUI_General_Display(MENU_Sprite, CN_Time_danwei, GUI_BLENDMODE_SRC_OVER); /*H*/
Get_Menu_Off_Time = Coom_Get_Menu_Off_Time();
if (Temp <= 0xFAFFFFFF)
if ((State_Flag.Menu_Key_Static == 1u) && (Get_Menu_Off_Time < 150000))
{
Temp = Temp / 20u;
/*时间*/
GUI_General_Display(MENU_Sprite, CN_Time_wenzi, GUI_BLENDMODE_SRC_OVER); /*时间*/
GUI_General_Display(MENU_Sprite, CN_Time_danwei, GUI_BLENDMODE_SRC_OVER); /*H*/
if (Temp >= 9999999)
if (Temp <= 0xFAFFFFFF)
{
GUI_General_Digit_Display(MENU_Sprite, 9999999, Nb_20_0, 7u, 5u, GUI_DISP_OILTEMP, 221u, GUI_BLENDMODE_SRC_OVER);
Temp = Temp / 20u;
if (Temp >= 9999999)
{
GUI_General_Digit_Display(MENU_Sprite, 9999999, Nb_20_0, 7u, 5u, GUI_DISP_OILTEMP, 221u, GUI_BLENDMODE_SRC_OVER);
}
else
{
GUI_General_Digit_Display(MENU_Sprite, Temp, Nb_20_0, 7u, 5u, GUI_DISP_OILTEMP, 221u, GUI_BLENDMODE_SRC_OVER);
}
GUI_Translate_Display(MENU_Sprite, Nb_20_dian, 719u, 241u, GUI_BLENDMODE_CUSTOM); /*点*/
}
else
{
GUI_General_Digit_Display(MENU_Sprite, Temp, Nb_20_0, 7u, 5u, GUI_DISP_OILTEMP, 221u, GUI_BLENDMODE_SRC_OVER);
GUI_General_Digit_Display(MENU_Sprite, 9999999, Nb_20_0, 7u, 5u, GUI_DISP_OILTEMP, 221u, GUI_BLENDMODE_SRC_OVER);
GUI_Translate_Display(MENU_Sprite, Nb_20_dian, 719u, 241u, GUI_BLENDMODE_CUSTOM); /*点*/
}
GUI_Translate_Display(MENU_Sprite, Nb_20_dian, 719u, 241u, GUI_BLENDMODE_CUSTOM); /*点*/
}
else
{
GUI_General_Digit_Display(MENU_Sprite, 9999999, Nb_20_0, 7u, 5u, GUI_DISP_OILTEMP, 221u, GUI_BLENDMODE_SRC_OVER);
GUI_Translate_Display(MENU_Sprite, Nb_20_dian, 719u, 241u, GUI_BLENDMODE_CUSTOM); /*点*/
}
}
else
......
......@@ -325,6 +325,7 @@ typedef struct
extern void GUI_Display_KL15_ON_Init(void);
extern void GUI_Display_KL15_OFF_Init(void);
extern void GUI_Display_backgroundOFF(void);
extern void GUI_Display_Value_Init(void); /*显示数据初始化*/
extern void GUI_Display_background(void); /*刷底图*/
extern void GUI_OftenShow_Display(void); /*常显界面*/
......
......@@ -24,6 +24,7 @@ uint8_t BG_display_flag;
#pragma ghs section bss = default
uint16_t HMI_StartAnimationFrameCnt;
uint8_t backgroundOFFFlag;
static void switch_branch(void);
......@@ -78,11 +79,13 @@ void DisplayServices(void)
uint32_t PowerOnTimer;
uint32_t PowerOFFTimer;
uint8_t PowerStatus;
uint32_t Get_Menu_Off_Time = 0u;
uint16_t popupID = 0xFFFFu;
PowerStatus = Common_Get_IG_Sts();
PowerOnTimer = Common_GetIgnOnTime();
PowerOFFTimer = Common_GetIgnOffTime();
Get_Menu_Off_Time = Coom_Get_Menu_Off_Time();
if ((PowerOnTimer <= StartAnimationEnd) && (PowerOnTimer >= StartAnimationStart))
{
......@@ -133,8 +136,16 @@ void DisplayServices(void)
}
else
{
UE_EN[Display_Menu] = UE_Disable;
UE_EN[Display_Nothing] = UE_Enable;
if ((State_Flag.Menu_Key_Static == 1u) && (Get_Menu_Off_Time < 150000))
{
UE_EN[Display_Menu] = UE_Enable;
UE_EN[Display_Nothing] = UE_Disable;
}
else
{
UE_EN[Display_Menu] = UE_Disable;
UE_EN[Display_Nothing] = UE_Enable;
}
}
}
}
......@@ -229,7 +240,7 @@ void DisplayServices(void)
void Display_StartAnimationEnter(void)
{
HMI_StartAnimationFrameCnt = 0u;
backgroundOFFFlag = 0;
/*硬清空所有缓存数据*/
loc_free_mem(WET_Sprite, MENU_Sprite);
......@@ -250,14 +261,6 @@ void Display_StartAnimationService(void)
}
void Display_StartAnimationExit(void)
{
/*开机动画播放完毕使能底图窗口 二次使能窗口*/
JCUA_Enable_window();
/*使能PNG窗口*/
loc_Enable_Window_App();
/*刷底图*/
GUI_Display_background();
}
uint16_t Common_GetHMI_StartAnimationFrameCnt(void)
......@@ -268,11 +271,18 @@ uint16_t Common_GetHMI_StartAnimationFrameCnt(void)
/*----菜单----*/
void Display_MenuEnter (void)
{
/*开机动画播放完毕使能底图窗口 二次使能窗口*/
JCUA_Enable_window();
/*使能PNG窗口*/
loc_Enable_Window_App();
/*刷底图*/
GUI_Display_background();
}
void Display_MenuService(void)
{
}
/*----报警----*/
void Display_AlarmEnter (void)
{
......@@ -285,8 +295,8 @@ void Display_AlarmService(void)
void Display_NothingEnter(void)
{
JCUA_Disable_window();
//loc_Disable_Window_App( );
loc_free_mem(WET_Sprite, Calendar_Sprite);
loc_Disable_Window_App( );
loc_free_mem(WET_Sprite, MENU_Sprite);
}
void Display_NothingService(void)
{
......@@ -388,6 +398,13 @@ void GUI_DisplayServices(void)
}
else
{
if (backgroundOFFFlag == 0u)
{
GUI_Display_backgroundOFF();
loc_Enable_Window_App();
loc_Del_Sprite(MENU_Sprite, MENU_Sprite);
backgroundOFFFlag = 1u;
}
GUI_Time_OilTemp_OFF_Display(GUI_DISP_MODE_NORMAL);
BG_display_flag = 0u;
}
......@@ -533,8 +550,8 @@ void Meter_Mode_conversion(void)
else
{
/*进入自检模式*/
//if ((MenuFlag.Key_MenuTest_Long == 1u) && (MenuFlag.Key_MenuTest_ShortNum >= 3u))
if (MenuFlag.Key_MenuTest_ShortNum >= 3u)
if ((MenuFlag.Key_MenuTest_Long == 1u) && (MenuFlag.Key_MenuTest_ShortNum >= 3u))
//if (MenuFlag.Key_MenuTest_ShortNum >= 3u)
{
MenuFlag.Menu_Test = 1u;
MenuFlag.Key_MenuTest_Long = 0u;
......
......@@ -84,6 +84,7 @@ static uint32_t LOW_VOLTAGE;
static uint32_t TPMS_TEST_OFF_TIME;
static uint32_t Menu_FacDea_Time;
static uint32_t Menu_Off_Time;
/*每次唤醒调用*/
void Common_DataInit(void)
......@@ -127,6 +128,8 @@ void Common_DataInit(void)
TPMS_TEST_OFF_TIME = 0x00u;
Menu_FacDea_Time = 0x00u;
Menu_Off_Time = 0x00u;
}
/*以下由各个处理模块按需调用*/
......@@ -511,6 +514,8 @@ void Common_Input_Para(void)
{
CRUISE_SLD1_Time = 0;
}
Menu_Off_Time = 0u;
}
else
{
......@@ -520,6 +525,10 @@ void Common_Input_Para(void)
PowerIgnOffTimeLine += 2u;
}
if (Menu_Off_Time <= 300000u )
{
Menu_Off_Time ++;
}
Common_Set_IG_Sts(COMMON_POWER_OFF);
Common_Set_IG_Sts_Valid(COMMON_Valid);
......@@ -840,6 +849,11 @@ uint32_t Common_Get_Menu_FacDea_Time_Sta(void)
return Menu_FacDea_Time;
}
uint32_t Coom_Get_Menu_Off_Time(void)
{
return Menu_Off_Time;
}
/*EOL诊断配置数据转换为仪表配置数据*/
void ReadDTCEOLValue_Meter_K_LINE(void)
{
......
......@@ -54,6 +54,7 @@ uint8_t Common_Get_LT_Sta (void);
void Common_Set_Menu_FacDea_Time_Sta(uint32_t Value);
uint32_t Common_Get_Menu_FacDea_Time_Sta(void);
uint8_t Common_Get_TPMS_TEST_OFF_Time_Sta(void);
uint32_t Coom_Get_Menu_Off_Time(void);
void ReadDTCEOLValue_Meter_K_LINE(void);
void Common_Set_K_Line_Value(void);
......
......@@ -68,7 +68,7 @@ void Sys_Startup_Pre_Init(void)
/* Prepare device (clear all internal config, prepare interrupts) */
R_DEV_Prepare();
Clock_Pre_Init();
RTC_Pre_Init();
//RTC_Pre_Init();
GPIO_Init(0);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment