Commit e5997789 authored by 时昊's avatar 时昊

feat:修改里程代码

parent 8cd1ebc9
...@@ -7,7 +7,7 @@ ...@@ -7,7 +7,7 @@
__align(4) __align(4)
uint8_t DataMilleageBuf[Data_MEM_Block_Mileage]; uint8_t DataMilleageBuf[Data_MEM_Block_Mileage];
uint8_t DataODOBuf[Data_MEM_Block_ODO]; uint8_t DataODOBuf[Data_MEM_Block_ODO];
uint8_t DataTripBuf[Data_MEM_Block_Trip * EM_TRIP_MAX]; uint8_t DataTripBuf[Data_MEM_Block_Trip * EM_TRIP_MAX];
Mileage_t g_WriteMileage; Mileage_t g_WriteMileage;
...@@ -17,15 +17,13 @@ uint8_t odo_readState; ...@@ -17,15 +17,13 @@ uint8_t odo_readState;
static uint32_t Data_User_EEPROM_Read(uint16_t u16BlockID, uint32_t u32Data[], uint16_t u16Len); static uint32_t Data_User_EEPROM_Read(uint16_t u16BlockID, uint32_t u32Data[], uint16_t u16Len);
static void Data_User_EEPROM_Write(Data_EEPROM_Enum_t BlockID, uint32_t u32Data[], uint16_t u16Len); static void Data_User_EEPROM_Write(Data_EEPROM_Enum_t BlockID, uint32_t u32Data[], uint16_t u16Len);
#define EEPROM_BLOCK_00 0X00 #define EEPROM_BLOCK_00 0
#define EEPROM_BLOCK_01 0X16 #define EEPROM_BLOCK_01 16
#define EEPROM_BLOCK_02 0X32 #define EEPROM_BLOCK_02 32
#define EEPROM_BLOCK_03 0X48 #define EEPROM_BLOCK_03 48
#define EEPROM_BLOCK_04 0X64 #define EEPROM_BLOCK_04 64
#define EEPROM_BLOCK_05 0X80 #define EEPROM_BLOCK_05 80
#define EEPROM_BLOCK_06 0X90 #define EEPROM_BLOCK_06 96
uint32_t Milleage_InitFlag = 0U;
...@@ -42,10 +40,8 @@ void Data_User_Mileage_KL30Init(void) ...@@ -42,10 +40,8 @@ void Data_User_Mileage_KL30Init(void)
Mileage_Init_t MileInit = {0}; Mileage_Init_t MileInit = {0};
Mileage_Func_t Func = {0}; Mileage_Func_t Func = {0};
ODO_Init_t ODOInit = {0}; ODO_Init_t ODOInit = {0};
// EngODO_Init_t EngODOInit = {0};
Trip_Init_t TripInit[4] = {0}; Trip_Init_t TripInit[4] = {0};
Milleage_InitFlag = 0U;
// �������ݴ�EEPROM�ж�ȡ
(void)Data_User_EEPROM_Read(EM_MILEAGE_BLOCK, TempBuf, 1); (void)Data_User_EEPROM_Read(EM_MILEAGE_BLOCK, TempBuf, 1);
if (TempBuf[0] == 0xFFFFFFFF) if (TempBuf[0] == 0xFFFFFFFF)
{ {
...@@ -57,9 +53,9 @@ void Data_User_Mileage_KL30Init(void) ...@@ -57,9 +53,9 @@ void Data_User_Mileage_KL30Init(void)
} }
Func.Get_Sys_IG_Sts = Common_Get_IG_Sts; Func.Get_Sys_IG_Sts = Common_Get_IG_Sts;
Func.Get_Act_V_Speed_Valid = Common_Get_Act_V_Speed_Valid; Func.Get_Act_V_Speed_Valid = Common_Get_Act_V_Speed_Valid;
Func.Get_Act_V_Speed = Common_Get_Act_V_Speed_Limit; Func.Get_Act_V_Speed = Common_Get_Act_V_Speed;
Func.Get_TireSize = (void *)0; Func.Get_TireSize = (void *)0;
Func.EEPromWrite_Cbk = Data_User_EEPROM_Write; // ��ʱδ���� Func.EEPromWrite_Cbk = Data_User_EEPROM_Write;
Data_Mileage_KL30_Init(DataMilleageBuf, &MileInit, &Func); Data_Mileage_KL30_Init(DataMilleageBuf, &MileInit, &Func);
(void)Data_User_EEPROM_Read(EM_ODO_BLOCK, TempBuf + 1, 2); (void)Data_User_EEPROM_Read(EM_ODO_BLOCK, TempBuf + 1, 2);
...@@ -92,7 +88,7 @@ void Data_User_Mileage_KL30Init(void) ...@@ -92,7 +88,7 @@ void Data_User_Mileage_KL30Init(void)
TripInit[EM_TRIP_A].Stamp = TempBuf[3]; TripInit[EM_TRIP_A].Stamp = TempBuf[3];
} }
TripInit[EM_TRIP_A].Offset = TempBuf[4]; TripInit[EM_TRIP_A].Offset = TempBuf[4];
TripInit[EM_TRIP_A].MaxValue = 16092; /* 最大999.9Mile 进行复位 */ TripInit[EM_TRIP_A].MaxValue = 99999; /* 最大999.9Mile 进行复位 */
TripInit[EM_TRIP_A].IsRestart = 1u; TripInit[EM_TRIP_A].IsRestart = 1u;
TripInit[EM_TRIP_B].Stamp = 0xFFFFFFFFu; TripInit[EM_TRIP_B].Stamp = 0xFFFFFFFFu;
...@@ -108,33 +104,26 @@ void Data_User_Mileage_KL30Init(void) ...@@ -108,33 +104,26 @@ void Data_User_Mileage_KL30Init(void)
TripInit[EM_TRIP_D].IsRestart = 1u; TripInit[EM_TRIP_D].IsRestart = 1u;
Data_Trip_KL30_Init(DataTripBuf, TripInit, EM_TRIP_MAX, Func.EEPromWrite_Cbk); Data_Trip_KL30_Init(DataTripBuf, TripInit, EM_TRIP_MAX, Func.EEPromWrite_Cbk);
Milleage_InitFlag = 0X5AA53AA3UL;
} }
void Data_User_Mileage_WakeupInit(void) void Data_User_Mileage_WakeupInit(void)
{ {
Mileage_Func_t Func = {0}; Mileage_Func_t Func = {0};
Milleage_InitFlag = 0U;
Func.Get_Sys_IG_Sts = Common_Get_IG_Sts; Func.Get_Sys_IG_Sts = Common_Get_IG_Sts;
Func.Get_Act_V_Speed_Valid = Common_Get_Act_V_Speed_Valid; Func.Get_Act_V_Speed_Valid = Common_Get_Act_V_Speed_Valid;
Func.Get_Act_V_Speed = Common_Get_Act_V_Speed_Limit; Func.Get_Act_V_Speed = Common_Get_Act_V_Speed;
Func.Get_TireSize = (void *)0; Func.Get_TireSize = (void *)0;
Func.EEPromWrite_Cbk = Data_User_EEPROM_Write; // ��ʱδ���� Func.EEPromWrite_Cbk = Data_User_EEPROM_Write; // ��ʱδ����
Data_Mileage_Wakeup_Init(DataMilleageBuf, &Func); Data_Mileage_Wakeup_Init(DataMilleageBuf, &Func);
Data_ODO_Wakeup_Init(DataODOBuf, Func.EEPromWrite_Cbk); Data_ODO_Wakeup_Init(DataODOBuf, Func.EEPromWrite_Cbk);
//Data_Trip_Wakeup_Init(DataTripBuf, EM_TRIP_MAX, Func.EEPromWrite_Cbk); Data_Trip_Wakeup_Init(DataTripBuf, EM_TRIP_MAX, Func.EEPromWrite_Cbk);
Milleage_InitFlag = 0X5AA53AA3UL;
}
uint32_t Get_MileageInit_Status(void)
{
return Milleage_InitFlag;
} }
static uint32_t Data_User_EEPROM_Read(uint16_t u16BlockID, uint32_t u32Data[], uint16_t u16Len) static uint32_t Data_User_EEPROM_Read(uint16_t u16BlockID, uint32_t u32Data[], uint16_t u16Len)
{ {
switch (u16BlockID) switch (u16BlockID)
...@@ -162,8 +151,6 @@ static uint32_t Data_User_EEPROM_Read(uint16_t u16BlockID, uint32_t u32Data[], u ...@@ -162,8 +151,6 @@ static uint32_t Data_User_EEPROM_Read(uint16_t u16BlockID, uint32_t u32Data[], u
static void Data_User_EEPROM_Write(Data_EEPROM_Enum_t BlockID, uint32_t u32Data[], uint16_t u16Len) static void Data_User_EEPROM_Write(Data_EEPROM_Enum_t BlockID, uint32_t u32Data[], uint16_t u16Len)
{ {
// uint8_t i = 0u;
switch (BlockID) switch (BlockID)
{ {
case EM_MILEAGE_BLOCK: case EM_MILEAGE_BLOCK:
...@@ -196,7 +183,7 @@ void Services_Mileage_Callback(void) ...@@ -196,7 +183,7 @@ void Services_Mileage_Callback(void)
{ {
Data_Mileage_ISR(); Data_Mileage_ISR();
Data_ODO_Processing(); Data_ODO_Processing();
//Data_Trip_Processing(); Data_Trip_Processing();
Trip_Clear_Km_Service(); Trip_Clear_Km_Service();
} }
...@@ -207,18 +194,18 @@ void Services_Mileage_Callback(void) ...@@ -207,18 +194,18 @@ void Services_Mileage_Callback(void)
uint32_t Get_ODO_Value(void) uint32_t Get_ODO_Value(void)
{ {
uint32_t ODO = 0; uint32_t ODO = 0;
if (Get_Dis_Unit() == 0) /* 公制 */ // if (Get_Dis_Unit() == 0) /* 公制 */
{ // {
ODO = Data_ODO_Read(); // ODO = Data_ODO_Read();
} // }
else if (Get_Dis_Unit() == 1) /* 英制 */ // else if (Get_Dis_Unit() == 1) /* 英制 */
{ // {
ODO = Data_Km_To_Mile(Data_ODO_Read()); // ODO = Data_Km_To_Mile(Data_ODO_Read());
} // }
else /* 无效值,按照公里处理,理论上不会执行到这 */ // else /* 无效值,按照公里处理,理论上不会执行到这 */
{ // {
ODO = Data_ODO_Read(); // ODO = Data_ODO_Read();
} // }
return ODO; return ODO;
} }
...@@ -229,34 +216,34 @@ uint32_t Get_ODO_Value(void) ...@@ -229,34 +216,34 @@ uint32_t Get_ODO_Value(void)
uint32_t Get_Trip_Value(void) uint32_t Get_Trip_Value(void)
{ {
uint32_t Trip = 0; uint32_t Trip = 0;
if (Get_Dis_Unit() == 0) /* 公制 */ // if (Get_Dis_Unit() == 0) /* 公制 */
{ // {
Trip = Data_Read_Trip(EM_TRIP_A); // Trip = Data_Read_Trip(EM_TRIP_A);
} // }
else if (Get_Dis_Unit() == 1) /* 英制 */ // else if (Get_Dis_Unit() == 1) /* 英制 */
{ // {
Trip = Data_Km_To_Mile(Data_Read_Trip(EM_TRIP_A)); // Trip = Data_Km_To_Mile(Data_Read_Trip(EM_TRIP_A));
} // }
else /* 无效值,按照公里处理,理论上不会执行到这 */ // else /* 无效值,按照公里处理,理论上不会执行到这 */
{ // {
Trip = Data_Read_Trip(EM_TRIP_A); // Trip = Data_Read_Trip(EM_TRIP_A);
} // }
return Trip; return Trip;
} }
uint32_t testtrip = 0;
/** /**
* @brief 当前单位在KM时,小计里程大于999.9KM,主动触发小计清零 * @brief 当前单位在KM时,小计里程大于999.9KM,主动触发小计清零
* *
*/ */
void Trip_Clear_Km_Service(void) void Trip_Clear_Km_Service(void)
{ {
if (Get_Dis_Unit() == 0) /* 公制 */ // if (Get_Dis_Unit() == 0) /* 公制 */
{ // {
if (Data_Read_Trip(EM_TRIP_A) > 9999) /* 当前单位在KM时,里程大于999.9KM进行清零 */ // if (Data_Read_Trip(EM_TRIP_A) > 9999) /* 当前单位在KM时,里程大于999.9KM进行清零 */
{ // {
Data_Clear_Trip_All(); // Data_Clear_Trip_All();
} // }
} // }
} }
......
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