Commit d7b3317d authored by 郑萍's avatar 郑萍

feat:增加下电充电三分钟的休眠熄屏

parent 7c76aa5c
......@@ -9,19 +9,67 @@
uint8_t interact_PWM_Low_Duty = 0;
void BackLight_Process(void)
{
if (Get_CAN_Power_State() != PKEY_ON && Get_CAN_Power_State() != KEY_OFF )
if (Get_CAN_Power_State() != PKEY_ON && Get_CAN_Power_State() != KEY_OFF && Charge_OFF_Flag != 2)
{
TimerM_PWM_set_duty(TIMERM_COUNTER1, TIMERM_CHB, BACK_LIGHT_DAY);
//电量
if (Get_EleDial_AllSOC_lenth() == 2)
{
RTE_GPIO_Config(RTE_GPIO_PORT03_PIN00, GpioOut_High);//百位
RTE_GPIO_Config(RTE_GPIO_PORT02_PIN04, GpioOut_High);
}
else if(Get_EleDial_AllSOC_lenth() == 1)
{
RTE_GPIO_Config(RTE_GPIO_PORT03_PIN00, GpioOut_Low);
RTE_GPIO_Config(RTE_GPIO_PORT02_PIN04, GpioOut_High);
}
else
{
RTE_GPIO_Config(RTE_GPIO_PORT03_PIN00, GpioOut_Low);
RTE_GPIO_Config(RTE_GPIO_PORT02_PIN04, GpioOut_Low);
}
}
else
{
TimerM_PWM_set_duty(TIMERM_COUNTER1, TIMERM_CHB, 0);
RTE_GPIO_Config(RTE_GPIO_PORT03_PIN00, GpioOut_Low);
RTE_GPIO_Config(RTE_GPIO_PORT02_PIN04, GpioOut_Low);
}
}
void BackLight_Clock_All_Process(void)
{
if (Get_CAN_Power_State() != PKEY_ON && Get_CAN_Power_State() != KEY_OFF && Charge_OFF_Flag == 0)
{
//总计时间
if (Get_Clock_All_lenth() == 2)
{
RTE_GPIO_Config(RTE_GPIO_PORT01_PIN05, GpioOut_High); //总计工作时长统计千位_MCU_OUT
RTE_GPIO_Config(RTE_GPIO_PORT01_PIN06, GpioOut_High); //总计工作时长统计百十位_MCU_OUT
}
else if(Get_Clock_All_lenth() == 1)
{
RTE_GPIO_Config(RTE_GPIO_PORT01_PIN05, GpioOut_Low); //总计工作时长统计千位_MCU_OUT
RTE_GPIO_Config(RTE_GPIO_PORT01_PIN06, GpioOut_High); //总计工作时长统计百十位_MCU_OUT
}
else
{
RTE_GPIO_Config(RTE_GPIO_PORT01_PIN05, GpioOut_Low); //总计工作时长统计千位_MCU_OUT
RTE_GPIO_Config(RTE_GPIO_PORT01_PIN06, GpioOut_Low); //总计工作时长统计百十位_MCU_OUT
}
}
else
{
RTE_GPIO_Config(RTE_GPIO_PORT01_PIN05, GpioOut_Low); //总计工作时长统计千位_MCU_OUT
RTE_GPIO_Config(RTE_GPIO_PORT01_PIN06, GpioOut_Low); //总计工作时长统计百十位_MCU_OUT
}
}
void Interact_Light_Process(void)
{
if (Get_CAN_Power_State() != PKEY_ON && Get_CAN_Power_State() != KEY_OFF )
if (Get_CAN_Power_State() != PKEY_ON && Get_CAN_Power_State() != KEY_OFF && Charge_OFF_Flag == 0)
{
TimerM_PWM_set_duty(TIMERM_COUNTER0, TIMERM_CHD, interact_PWM_Low_Duty * 10);
}
......
......@@ -5,6 +5,7 @@
extern uint8_t interact_PWM_Low_Duty;
void BackLight_Process(void);
void Interact_Light_Process(void);
void BackLight_Clock_All_Process(void);
extern uint8_t Get_Interact_Light_State(void);
......
......@@ -25,20 +25,20 @@ void Gpio_Init(_GpioUser_Enum InitMode)
RTE_GPIO_Config(RTE_GPIO_PORT01_PIN02, GpioOut_High); //TXD-ESP-IN-MCU
RTE_GPIO_Config(RTE_GPIO_PORT01_PIN03, GpioOut_Low); //空
RTE_GPIO_Config(RTE_GPIO_PORT01_PIN04, GpioOut_Low); //空
RTE_GPIO_Config(RTE_GPIO_PORT01_PIN05, GpioOut_High); //总计工作时长统计千位_MCU_OUT
RTE_GPIO_Config(RTE_GPIO_PORT01_PIN06, GpioOut_High); //总计工作时长统计百十位_MCU_OUT
RTE_GPIO_Config(RTE_GPIO_PORT01_PIN05, GpioOut_Low); //总计工作时长统计千位_MCU_OUT
RTE_GPIO_Config(RTE_GPIO_PORT01_PIN06, GpioOut_Low); //总计工作时长统计百十位_MCU_OUT
RTE_GPIO_Config(RTE_GPIO_PORT01_PIN07, GpioOut_High); //交互指示灯_PWM_MCU_OUT
RTE_GPIO_Config(RTE_GPIO_PORT02_PIN00, RTE_GPIO_DIR_IN); //AVDD
RTE_GPIO_Config(RTE_GPIO_PORT02_PIN01, RTE_GPIO_DIR_IN); //GND
RTE_GPIO_Config(RTE_GPIO_PORT02_PIN02, RTE_GPIO_DIR_IN); //KL30-AD
RTE_GPIO_Config(RTE_GPIO_PORT02_PIN03, RTE_GPIO_DIR_IN); //KL15-AD
RTE_GPIO_Config(RTE_GPIO_PORT02_PIN04, GpioOut_High); //电量十位_MCU_OUT
RTE_GPIO_Config(RTE_GPIO_PORT02_PIN04, GpioOut_Low); //电量十位_MCU_OUT
RTE_GPIO_Config(RTE_GPIO_PORT02_PIN05, GpioOut_Low); //空
RTE_GPIO_Config(RTE_GPIO_PORT02_PIN06, GpioOut_Low); //空
RTE_GPIO_Config(RTE_GPIO_PORT02_PIN07, GpioOut_Low); //空
RTE_GPIO_Config(RTE_GPIO_PORT03_PIN00, GpioOut_High); //电量百位_MCU_OUT
RTE_GPIO_Config(RTE_GPIO_PORT03_PIN00, GpioOut_Low); //电量百位_MCU_OUT
RTE_GPIO_Config(RTE_GPIO_PORT03_PIN01, GpioOut_Low); //SDB_LED_DRIVER
RTE_GPIO_Config(RTE_GPIO_PORT04_PIN00, GpioOut_Low); //SEDIO-编程
......
......@@ -6,6 +6,7 @@ uint16_t poweroff_time = 0;
uint8_t SOC_Count_Time = 0;
uint8_t BUZZER_ON = 0;
uint8_t Charge_OFF_Flag = 0;
// void Gauge_Gear_Display(void)
// {
......@@ -23,7 +24,7 @@ uint8_t BUZZER_ON = 0;
void Gauge_Power_SOC_pull_Display(void)
{
// uint8_t MBMS_StatBattWorkState = Get_CAN_CH0_ID_18203220_Sig_MBMS_StatBattWorkState();
if (Common_Get_IG_Sts() == COMMON_POWER_ON)
if (Common_Get_IG_Sts() == COMMON_POWER_ON && Charge_OFF_Flag == 0)
{
if (CAN_MSG_Status(&CAN_CH0_CanMsgOp, Co_Can_ConvertSubID_CAN_CH0(CAN_CH0_ID_CAN_0x18200A20_Msg)) == CAN_ERR_OK || CAN_MSG_Status(&CAN_CH0_CanMsgOp, Co_Can_ConvertSubID_CAN_CH0(CAN_CH0_ID_CAN_0x18200A21_Msg)) == CAN_ERR_OK)
{
......@@ -149,10 +150,10 @@ void Gauge_Power_SOC_CHAGING_Display(void)
SEG_SET_EleDial_2SOC(0, 0);
}
}
static uint8_t AllSOC_DIS = 0;
void Gauge_EleDial_AllSOC_Display(void)
{
uint8_t AllSOC_DIS = 0;
if (Common_Get_IG_Sts() == COMMON_POWER_ON)
{
if (CAN_MSG_Status(&CAN_CH0_CanMsgOp, Co_Can_ConvertSubID_CAN_CH0(CAN_CH0_ID_CAN_0x18203020_Msg)) == CAN_ERR_OK)
......@@ -171,12 +172,26 @@ void Gauge_EleDial_AllSOC_Display(void)
}
}
uint8_t Get_EleDial_AllSOC_lenth(void)
{
uint8_t num = 0;
if(AllSOC_DIS > 99)
{
num = 2;
}
else if(AllSOC_DIS > 9)
{
num = 1;
}
return num;
}
uint8_t Clockonetime_flag = 0;
void Gauge_Clock_Display(void)
{
uint32_t Clock_all = 0;
static uint8_t Clock_seconds = 0;
static uint8_t Clock_hours = 0;
if (Common_Get_IG_Sts() == COMMON_POWER_ON)
if (Common_Get_IG_Sts() == COMMON_POWER_ON && Charge_OFF_Flag == 0)
{
if (CAN_MSG_Status(&CAN_CH0_CanMsgOp, Co_Can_ConvertSubID_CAN_CH0(CAN_CH0_ID_CAN_0x339_Msg)) == CAN_ERR_OK)
{
......@@ -184,6 +199,7 @@ void Gauge_Clock_Display(void)
Clock_hours = Clock_all / 60;
Clock_seconds = Clock_all % 60;
SEG_SET_Clock(Clock_hours, Clock_seconds, FLASH_SYNC_1Hz, 1, 1);
Clockonetime_flag = 1;
}
else
{
......@@ -193,8 +209,14 @@ void Gauge_Clock_Display(void)
else
{
SEG_SET_Clock(0, 0, 0, 0, 0);
Clockonetime_flag = 0;
}
}
uint8_t Get_Clockonetime_lenth(void)
{
return Clockonetime_flag;
}
static uint16_t EEPROM_Write_Time = 0;
void Data_CumulativeWorkHours_EEPROM_Write(void)
{
......@@ -221,24 +243,36 @@ void Data_CumulativeWorkHours_EEPROM_Write(void)
EEPROM_Write_Time = 0;
}
}
uint32_t u32Data_read[1] = {0};
void Gauge_Clock_All_Display(void)
{
uint32_t u32Data[1] = {0};
eeprom_ReadRecord(EEPROM_BLOCK_00, (uint8_t *)u32Data, 4);
if (Common_Get_IG_Sts() == COMMON_POWER_ON)
eeprom_ReadRecord(EEPROM_BLOCK_00, (uint8_t *)u32Data_read, 4);
if (Common_Get_IG_Sts() == COMMON_POWER_ON && Charge_OFF_Flag == 0)
{
SEG_SET_Clock_ALL(1, u32Data[0]);
SEG_SET_Clock_ALL(1, u32Data_read[0]);
}
else
{
SEG_SET_Clock_ALL(0, 0);
}
}
uint8_t Get_Clock_All_lenth(void)
{
uint8_t num = 0;
if(u32Data_read[0] > 999)
{
num = 2;
}
else if(u32Data_read[0] > 9)
{
num = 1;
}
return num;
}
void Gauge_Frame_Display(void)
{
if (Common_Get_IG_Sts() == COMMON_POWER_ON)
if (Common_Get_IG_Sts() == COMMON_POWER_ON && Charge_OFF_Flag == 0)
{
SEG_SET_Frame(1);
}
......@@ -281,6 +315,7 @@ void Gauge_Service(void)
}
else if (Get_CAN_Power_State() == PKEY_ON)
{
poweroff_time = 0;
if (Buzzer_time == 0)
{
Clear_Bu98();
......@@ -321,6 +356,7 @@ void Gauge_Service(void)
else
{
BUZZER_Init();
poweroff_time = 0;
Clear_Bu98();
for (i = 0; i < LampCh0_MAX; i++)
{
......@@ -332,29 +368,27 @@ void Gauge_Service(void)
void Gauge_CAN_setup_Service(void)
{
uint8_t state = Get_CAN_Power_State();
switch (state)
{
case KEY_ACC:
{
interact_PWM_Low_Duty = 0;
Gauge_Clock_Display();
Gauge_Clock_All_Display();
Gauge_EleDial_AllSOC_Display();
// SEG_SET_GEAR(1, 1);
// SEG_SET_Cutterhead(1, 2);
Gauge_Frame_Display();
switch (state)
{
case KEY_ACC:
{
poweroff_time = 0;
Charge_OFF_Flag = 0;
interact_PWM_Low_Duty = 0;
Gauge_Power_SOC_pull_Display();
}
break;
case READY:
{
poweroff_time = 0;
Charge_OFF_Flag = 0;
interact_PWM_Low_Duty = 30;
Gauge_Clock_Display();
Gauge_Clock_All_Display();
Gauge_EleDial_AllSOC_Display();
// SEG_SET_GEAR(1, 1);
// SEG_SET_Cutterhead(1, 2);
Gauge_Frame_Display();
Gauge_Power_SOC_pull_Display();
}
break;
......@@ -366,22 +400,36 @@ void Gauge_CAN_setup_Service(void)
Gauge_Power_SOC_CHAGING_Display();
if (poweroff_time == 0)
{
Gauge_Clock_Display();
Gauge_Clock_All_Display();
Gauge_EleDial_AllSOC_Display();
// SEG_SET_GEAR(1, 1);
// SEG_SET_Cutterhead(1, 2);
Gauge_Frame_Display();
Charge_OFF_Flag = 0;
}
else
{
Charge_OFF_Flag = 1;
}
}
else
{
Charge_OFF_Flag = 2;
SEG_SET_EleDial_AllSOC(0, 0);
SEG_SET_EleDial_1SOC(0, 0);
SEG_SET_EleDial_2SOC(0, 0);
}
}
break;
case CHRG_PLUGIN:
{
Charge_OFF_Flag = 0;
Gauge_Power_SOC_pull_Display();
poweroff_time = 0;
}
break;
case CHRGEND:
{
poweroff_time = 0;
Charge_OFF_Flag = 0;
Gauge_Power_SOC_pull_Display();
}
break;
default:
break;
......
......@@ -37,6 +37,7 @@ typedef struct
#define POWERON_SCAN_TIMER 3000ul
extern uint8_t BUZZER_ON;
extern uint8_t Charge_OFF_Flag;
void Gauge_Power_SOC_pull_Display(void);
// void Gauge_Power_2_SOC_Display(void);
......@@ -64,6 +65,9 @@ uint32_t Get_Temp_Calc(void);
void Gauge_CAN_setup_Service(void);
void Checkself_LED_Display(void);
void BUZZER_Init(void);
uint8_t Get_Clock_All_lenth(void);
uint8_t Get_EleDial_AllSOC_lenth(void);
uint8_t Get_Clockonetime_lenth(void);
#endif
......@@ -6,7 +6,7 @@
#include "Application.h"
#include "CAN_APP\CAN_CH0_CAN_Communication_Matrix.h"
#include "Components.h"
#define openLED_flag (Get_CAN_Power_State() != PKEY_ON && Get_CAN_Power_State() != KEY_OFF)
#define openLED_flag (Get_CAN_Power_State() != PKEY_ON && Get_CAN_Power_State() != KEY_OFF && Charge_OFF_Flag == 0)
static Tellib_uint16_t LED_EFI_failure_Judgement(void);
static void LED_EFI_failure_Execution(Tellib_uint16_t led_status);
static Tellib_uint16_t LED_Fuel_Alarm_Judgement(void);
......@@ -373,15 +373,15 @@ static Tellib_uint16_t LED_Battery_Charging_Judgement(void)
Tellib_uint8_t Signal1 = Get_CAN_CH0_ID_18202922_Sig_MBMS_TOTALSigAcc();
Tellib_uint8_t Signal2 = Get_CAN_CH0_ID_18202922_Sig_MBMS_TOTALSigCharge();
Tellib_uint8_t Signal3 = Get_CAN_Power_State();
if(ADC_Read_Signal(ADC_CH_KL30_VOLTAGE) >= 9000 && ADC_Read_Signal(ADC_CH_KL30_VOLTAGE) <= 16000 && openLED_flag)
if(ADC_Read_Signal(ADC_CH_KL30_VOLTAGE) >= 9000 && ADC_Read_Signal(ADC_CH_KL30_VOLTAGE) <= 16000 && (Get_CAN_Power_State() != PKEY_ON && Get_CAN_Power_State() != KEY_OFF))
{
if (Signal1 == 0x1 && Signal2 == 0X1)
{
if(Signal3 == CHRG_PLUGIN || Signal3 == CHRGING)
if(Signal3 == CHRG_PLUGIN || Signal3 == CHRGEND)
{
LED_STATE = 2;
}
else if(Signal3 == CHRGEND)
else if(Signal3 == CHRGING)
{
LED_STATE = 1;
}
......@@ -480,17 +480,17 @@ static Tellib_uint16_t LED_GEAR_Judgement(void)
}
static void LED_GEAR_Execution(Tellib_uint16_t led_status)
{
if ( led_status == 1u )
{
LED_Driver_Channel_Set(LampChannel_0, LampCh0_04_GEAR_W, LED_ON);
SEG_SET_GEAR(1,Gear_N);
}
else
{
LED_Driver_Channel_Set(LampChannel_0, LampCh0_04_GEAR_W, LED_OFF);
SEG_SET_GEAR(0,Gear_N);
SEG_SET_LED_STS(SEG_LED_Cutter_Head_switch,0);
}
// if ( led_status == 1u )
// {
// LED_Driver_Channel_Set(LampChannel_0, LampCh0_04_GEAR_W, LED_ON);
// SEG_SET_GEAR(1,Gear_N);
// }
// else
// {
// LED_Driver_Channel_Set(LampChannel_0, LampCh0_04_GEAR_W, LED_OFF);
// SEG_SET_GEAR(0,Gear_N);
// SEG_SET_LED_STS(SEG_LED_Cutter_Head_switch,0);
// }
}
static Tellib_uint16_t LED_External_Discharge_Judgement(void)
......@@ -756,27 +756,25 @@ static void LED_Cutterhead_Gear_Execution(Tellib_uint16_t led_status)
static Tellib_uint16_t LED_Working_Hours_One_Judgement(void)
{
Tellib_uint16_t LED_STATE = 0u;
// if (Line_In_Get_Status(LINE_IN_HighBeam))
// {
// LED_STATE = 1;
// }
// else
// {
// LED_STATE = 0;
// }
if (Get_Clockonetime_lenth() == 1)
{
LED_STATE = 1;
}
else
{
LED_STATE = 0;
}
return LED_STATE;
}
static void LED_Working_Hours_One_Execution(Tellib_uint16_t led_status)
{
if ( led_status == 1u )
{
// LED_Driver_Channel_Set(LampChannel_0, LampCh0_07_Key_ISTOP, LED_ON);
// SEG_SET_LED_STS(1,1);
LED_Driver_Channel_Set(LampChannel_0, LampCh0_31_Working_Hours_One_W, LED_ON);
}
else
{
// LED_Driver_Channel_Set(LampChannel_0, LampCh0_07_Key_ISTOP, LED_OFF);
// SEG_SET_LED_STS(1,0);
LED_Driver_Channel_Set(LampChannel_0, LampCh0_31_Working_Hours_One_W, LED_OFF);
}
}
static Tellib_uint16_t LED_Fault_Codes_Judgement(void)
......@@ -878,7 +876,7 @@ static void LED_P_GEAR_G_Execution(Tellib_uint16_t led_status)
}
else
{
LED_Driver_Channel_Set(LampChannel_0, LampCh0_04_GEAR_W, LED_ON);
LED_Driver_Channel_Set(LampChannel_0, LampCh0_04_GEAR_W, LED_OFF);
LED_Driver_Channel_Set(LampChannel_0, LampCh0_03_P_GEAR_G, LED_OFF);
SEG_SET_GEAR(Gear_P, 0);
}
......@@ -913,7 +911,7 @@ static Tellib_uint16_t LED_Charging_Connection_R_Judgement(void)
{
Tellib_uint16_t LED_STATE = 0u;
Tellib_uint8_t Signal1 = Get_CAN_CH0_ID_18203220_Sig_MBMS_StatBattChargeState();
if ((Signal1 == 0x1 || Signal1 == 0x2 ||Signal1 == 0x3) && openLED_flag)
if ((Signal1 == 0x1 || Signal1 == 0x2 ||Signal1 == 0x3) && (Get_CAN_Power_State() != PKEY_ON && Get_CAN_Power_State() != KEY_OFF))
{
LED_STATE = 1;
}
......
......@@ -92,6 +92,7 @@ void Sys_100ms_Tasks(void)
{
BackLight_Process();
BackLight_Clock_All_Process();
Interact_Light_Process();
S3_ServerCNTT();
......
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