Commit 6c0643c3 authored by 李冠华's avatar 李冠华

feat:修改混动车型累计工作时间策略

parent 53b5e16b
......@@ -17,8 +17,33 @@ void Data_Time_KL30_Init(void)
void Data_Time_KL15_Init(void)
{
uint16_t u16Result = 0U;
uint32_t u32Data_read[1] = {0};
Time.KeepTimeCount = 0U;
u16EngineTimeCount = 0U;
#if (PART_NUMBER == G54_A01)
for(uint8_t i = 0U; i < 3U; i++ )
{
eeprom_ReadRecord(EEPROM_BLOCK_00, (uint8_t *)u32Data_read, 4);
if(u16Result == 0x2U)
{
break;
}
}
if (u32Data_read[0] == 0xFFFFFFFFU)
{
Time.TotalHour = 0U;
}
else if (u32Data_read[0] > 65535U)
{
u32Data_read[0] = 65535U;
Time.TotalHour = u32Data_read[0];
}
else
{
Time.TotalHour = u32Data_read[0];
}
#endif
}
void Data_Time_Single_Working_Hours(void)
......@@ -63,6 +88,7 @@ uint32_t CumulativeWorkHours_readDiffer = 0;
uint8_t CumulativeWorkHours_MAX_flag = 0;
void Data_Time_Total_Working_Hours(void)
{
#if (PART_NUMBER == RMR42E_60)
uint32_t u32Data[1] = {0};
eeprom_ReadRecord(EEPROM_BLOCK_00, (uint8_t *)u32Data_read, 4);
if (u32Data_read[0] > 99999)
......@@ -75,12 +101,34 @@ void Data_Time_Total_Working_Hours(void)
{
CumulativeWorkHours_MAX_flag = 0;
}
Time.TotalHour = u32Data_read[0];
#else
uint16_t u16Result = 0U;
uint32_t AccumulatedWorkHours = 0U;
if (CAN_MSG_Status(&CAN_CH0_CanMsgOp, Co_Can_ConvertSubID_CAN_CH0(CAN_CH0_ID_CAN_0x339_Msg)) == CAN_SIG_NORMAL)
{
AccumulatedWorkHours = (uint32_t) Get_CAN_CH0_ID_339_Sig_MMCU_AccumulatedWorkHours();
if(AccumulatedWorkHours != Time.TotalHour)
{
Time.TotalHour = AccumulatedWorkHours;
u32Data_read[0] = AccumulatedWorkHours;
for(uint8_t i = 0U; i < 3U; i++ )
{
u16Result = eeprom_WriteRecord(EEPROM_BLOCK_00, (uint8_t *)u32Data_read, 4);
if(u16Result == 0x2U)
{
break;
}
}
}
}
#endif
}
void Data_CumulativeWorkHours_EEPROM_Write(void)
{
#if (PART_NUMBER == RMR42E_60)
uint32_t CurrentData = 0;
uint32_t u32Data[1] = {0};
if ((Common_Get_IG_Sts() == COMMON_POWER_ON) && (Charge_OFF_Flag == 0) && (Get_CAN_Power_State() != KEY_OFF) && (Get_CAN_Power_State() != PKEY_ON) && (System_Indicator_CANFlag != 1))
......@@ -120,6 +168,7 @@ void Data_CumulativeWorkHours_EEPROM_Write(void)
}
}
}
#endif
}
/*发动机运行时间计时函数,为防止计时误差大,放在50μs中断中运行*/
......
......@@ -124,6 +124,7 @@ static void Power_IG_ON_Init(void)
Line_In_KL15_ON_Init();
LED_Driver_Service_Immediate();
Fault_Code_KL15_Init();
Data_Time_KL15_Init();
}
static void Power_Sleep_Init(void)
......
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