Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
H
haoJin750TFT
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
时昊
haoJin750TFT
Commits
e5997789
Commit
e5997789
authored
8 months ago
by
时昊
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
feat:修改里程代码
parent
8cd1ebc9
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
48 additions
and
61 deletions
+48
-61
Services_Mileage_User.c
Firmware/Source/Component/Mileage/Services_Mileage_User.c
+48
-61
No files found.
Firmware/Source/Component/Mileage/Services_Mileage_User.c
View file @
e5997789
...
...
@@ -7,7 +7,7 @@
__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
DataTripBuf
[
Data_MEM_Block_Trip
*
EM_TRIP_MAX
];
Mileage_t
g_WriteMileage
;
...
...
@@ -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
void
Data_User_EEPROM_Write
(
Data_EEPROM_Enum_t
BlockID
,
uint32_t
u32Data
[],
uint16_t
u16Len
);
#define EEPROM_BLOCK_00 0X00
#define EEPROM_BLOCK_01 0X16
#define EEPROM_BLOCK_02 0X32
#define EEPROM_BLOCK_03 0X48
#define EEPROM_BLOCK_04 0X64
#define EEPROM_BLOCK_05 0X80
#define EEPROM_BLOCK_06 0X90
uint32_t
Milleage_InitFlag
=
0U
;
#define EEPROM_BLOCK_00 0
#define EEPROM_BLOCK_01 16
#define EEPROM_BLOCK_02 32
#define EEPROM_BLOCK_03 48
#define EEPROM_BLOCK_04 64
#define EEPROM_BLOCK_05 80
#define EEPROM_BLOCK_06 96
...
...
@@ -42,10 +40,8 @@ void Data_User_Mileage_KL30Init(void)
Mileage_Init_t
MileInit
=
{
0
};
Mileage_Func_t
Func
=
{
0
};
ODO_Init_t
ODOInit
=
{
0
};
// EngODO_Init_t EngODOInit = {0};
Trip_Init_t
TripInit
[
4
]
=
{
0
};
Milleage_InitFlag
=
0U
;
// �������ݴ�EEPROM�ж�ȡ
(
void
)
Data_User_EEPROM_Read
(
EM_MILEAGE_BLOCK
,
TempBuf
,
1
);
if
(
TempBuf
[
0
]
==
0xFFFFFFFF
)
{
...
...
@@ -57,9 +53,9 @@ void Data_User_Mileage_KL30Init(void)
}
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
=
Common_Get_Act_V_Speed
_Limit
;
Func
.
Get_Act_V_Speed
=
Common_Get_Act_V_Speed
;
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
);
(
void
)
Data_User_EEPROM_Read
(
EM_ODO_BLOCK
,
TempBuf
+
1
,
2
);
...
...
@@ -92,7 +88,7 @@ void Data_User_Mileage_KL30Init(void)
TripInit
[
EM_TRIP_A
].
Stamp
=
TempBuf
[
3
];
}
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_B
].
Stamp
=
0xFFFFFFFFu
;
...
...
@@ -108,33 +104,26 @@ void Data_User_Mileage_KL30Init(void)
TripInit
[
EM_TRIP_D
].
IsRestart
=
1u
;
Data_Trip_KL30_Init
(
DataTripBuf
,
TripInit
,
EM_TRIP_MAX
,
Func
.
EEPromWrite_Cbk
);
Milleage_InitFlag
=
0X5AA53AA3UL
;
}
void
Data_User_Mileage_WakeupInit
(
void
)
{
Mileage_Func_t
Func
=
{
0
};
Milleage_InitFlag
=
0U
;
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
=
Common_Get_Act_V_Speed
_Limit
;
Func
.
Get_Act_V_Speed
=
Common_Get_Act_V_Speed
;
Func
.
Get_TireSize
=
(
void
*
)
0
;
Func
.
EEPromWrite_Cbk
=
Data_User_EEPROM_Write
;
// ��ʱδ����
Data_Mileage_Wakeup_Init
(
DataMilleageBuf
,
&
Func
);
Data_ODO_Wakeup_Init
(
DataODOBuf
,
Func
.
EEPromWrite_Cbk
);
//Data_Trip_Wakeup_Init(DataTripBuf, EM_TRIP_MAX, Func.EEPromWrite_Cbk);
Milleage_InitFlag
=
0X5AA53AA3UL
;
}
Data_Trip_Wakeup_Init
(
DataTripBuf
,
EM_TRIP_MAX
,
Func
.
EEPromWrite_Cbk
);
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
)
{
switch
(
u16BlockID
)
...
...
@@ -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
)
{
// uint8_t i = 0u;
switch
(
BlockID
)
{
case
EM_MILEAGE_BLOCK
:
...
...
@@ -196,7 +183,7 @@ void Services_Mileage_Callback(void)
{
Data_Mileage_ISR
();
Data_ODO_Processing
();
//
Data_Trip_Processing();
Data_Trip_Processing
();
Trip_Clear_Km_Service
();
}
...
...
@@ -207,18 +194,18 @@ void Services_Mileage_Callback(void)
uint32_t
Get_ODO_Value
(
void
)
{
uint32_t
ODO
=
0
;
if
(
Get_Dis_Unit
()
==
0
)
/* 公制 */
{
ODO
=
Data_ODO_Read
();
}
else
if
(
Get_Dis_Unit
()
==
1
)
/* 英制 */
{
ODO
=
Data_Km_To_Mile
(
Data_ODO_Read
());
}
else
/* 无效值,按照公里处理,理论上不会执行到这 */
{
ODO
=
Data_ODO_Read
();
}
//
if (Get_Dis_Unit() == 0) /* 公制 */
//
{
//
ODO = Data_ODO_Read();
//
}
//
else if (Get_Dis_Unit() == 1) /* 英制 */
//
{
//
ODO = Data_Km_To_Mile(Data_ODO_Read());
//
}
//
else /* 无效值,按照公里处理,理论上不会执行到这 */
//
{
//
ODO = Data_ODO_Read();
//
}
return
ODO
;
}
...
...
@@ -229,34 +216,34 @@ uint32_t Get_ODO_Value(void)
uint32_t
Get_Trip_Value
(
void
)
{
uint32_t
Trip
=
0
;
if
(
Get_Dis_Unit
()
==
0
)
/* 公制 */
{
Trip
=
Data_Read_Trip
(
EM_TRIP_A
);
}
else
if
(
Get_Dis_Unit
()
==
1
)
/* 英制 */
{
Trip
=
Data_Km_To_Mile
(
Data_Read_Trip
(
EM_TRIP_A
));
}
else
/* 无效值,按照公里处理,理论上不会执行到这 */
{
Trip
=
Data_Read_Trip
(
EM_TRIP_A
);
}
//
if (Get_Dis_Unit() == 0) /* 公制 */
//
{
//
Trip = Data_Read_Trip(EM_TRIP_A);
//
}
//
else if (Get_Dis_Unit() == 1) /* 英制 */
//
{
//
Trip = Data_Km_To_Mile(Data_Read_Trip(EM_TRIP_A));
//
}
//
else /* 无效值,按照公里处理,理论上不会执行到这 */
//
{
//
Trip = Data_Read_Trip(EM_TRIP_A);
//
}
return
Trip
;
}
uint32_t
testtrip
=
0
;
/**
* @brief 当前单位在KM时,小计里程大于999.9KM,主动触发小计清零
*
*/
void
Trip_Clear_Km_Service
(
void
)
{
if
(
Get_Dis_Unit
()
==
0
)
/* 公制 */
{
if
(
Data_Read_Trip
(
EM_TRIP_A
)
>
9999
)
/* 当前单位在KM时,里程大于999.9KM进行清零 */
{
Data_Clear_Trip_All
();
}
}
//
if (Get_Dis_Unit() == 0) /* 公制 */
//
{
//
if (Data_Read_Trip(EM_TRIP_A) > 9999) /* 当前单位在KM时,里程大于999.9KM进行清零 */
//
{
//
Data_Clear_Trip_All();
//
}
//
}
}
...
...
This diff is collapsed.
Click to expand it.
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment