Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
TianYing_ty100
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
TY
TianYing_ty100
Commits
63eebee0
Commit
63eebee0
authored
May 06, 2024
by
李俭双
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
✨
feat:增加车速数据处理
parent
d20dd765
Changes
2
Show whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
51 additions
and
101 deletions
+51
-101
CommonInterface.c
...ware/Source/Application/CommonInterface/CommonInterface.c
+1
-4
Data_VSpeed.c
Firmware/Source/Application/Data_VSpeed/Data_VSpeed.c
+50
-97
No files found.
Firmware/Source/Application/CommonInterface/CommonInterface.c
View file @
63eebee0
...
...
@@ -168,10 +168,7 @@ uint32_t Common_GetSocTime(void)
*/
uint32_t
Data_Km_To_Mile
(
uint32_t
Km
)
{
//Km *= 621;
//Km /= 1000;
Km
*=
100
;
Km
/=
161
;
Km
=
(
Km
*
64u
)
/
103u
;
return
Km
;
}
/**
...
...
Firmware/Source/Application/Data_VSpeed/Data_VSpeed.c
View file @
63eebee0
...
...
@@ -69,81 +69,35 @@ void Data_Vehicle_Speed_Processing_Service(void)
uint16_t
Delta
;
uint32_t
VSpeed
;
uint32_t
VSpeedCal
;
//uint8_t ESC_VehicleSpeedvalid
;
uint8_t
ESC_VehicleSpeedState
;
uint32_t
Vehicle_Speed
;
Vehicle_Speed
=
Get_CAN_CH0_ID_101_Sig_ECU_Vehicle_Speed
(
);
//ESC_VehicleSpeedvalid = Get_CAN_CH0_ID_330_Sig_ESC_Vehicle_speed_valid
( );
ESC_VehicleSpeedState
=
Get_CAN_CH0_ID_101_Sig_ECU_Vehicle_Speed_State
(
);
// 第1步:获取实际车速值及车速有效性
if
(
Common_Get_IG_Sts
(
)
==
COMMON_POWER_ON
)
{
if
((
CAN_MSG_Status
(
&
CAN_CH0_CanMsgOp
,
CAN_CH0_ID_CAN_0x101_Msg_Count
)
==
CAN_SIG_LOST
)
||
(
Vehicle_Speed
>
0XFF
))
{
/* 先判断掉线 */
if
(
CAN_MSG_Status
(
&
CAN_CH0_CanMsgOp
,
CAN_CH0_ID_CAN_0x101_Msg_Count
)
==
CAN_SIG_LOST
)
{
DataVSpeedValid
=
0
;
DataVSpeedActual
=
0
;
DataVSpeedSampler
.
Backup
=
0
;
}
#if 0
else if ( ESC_VehicleSpeedvalid == 1 )//发送can无效标志位
{
if ( DataVSpeedSampler.Timer1 <= 10 ) /* 10帧无效 */
{
if ( DataVSpeedValid )//判断车速是否有效,有效采集10次,车速等于上次值
{
DataVSpeedSampler.Timer1++;
DataVSpeedActual = DataVSpeedSampler.Backup;
}
else//无效,不采集,车速=0
{
DataVSpeedSampler.Timer1 = 10;
DataVSpeedActual = 0;
DataVSpeedSampler.Backup = 0;
}
}
else//不采集就,车速=0
{
DataVSpeedValid = 0;
DataVSpeedActual = 0;
DataVSpeedSampler.Backup = 0;
}
}
#endif
else
/* 收到无效值 */
{
if
(
DataVSpeedSampler
.
Timer
<=
100
)
/* 100帧无效值 */
{
if
(
DataVSpeedValid
)
{
DataVSpeedSampler
.
Timer
++
;
DataVSpeedActual
=
DataVSpeedSampler
.
Backup
;
}
else
{
DataVSpeedSampler
.
Timer
=
100
;
DataVSpeedActual
=
0
;
DataVSpeedSampler
.
Backup
=
0
;
}
}
else
// 接收到100帧无效值
if
(
ESC_VehicleSpeedState
==
1
)
{
DataVSpeedValid
=
0
;
DataVSpeedActual
=
0
;
DataVSpeedSampler
.
Backup
=
0
;
}
}
}
else
//车速在线且有效
else
{
if
(
DataVSpeedValid
==
0
)
{
DataVSpeedValid
=
1
;
VSpeed
=
Vehicle_Speed
;
// VSpeed *= 9;
// VSpeed >>= 4;
DataVSpeedActual
=
VSpeed
*
10
;
}
else
...
...
@@ -164,13 +118,13 @@ void Data_Vehicle_Speed_Processing_Service(void)
{
DataVSpeedSampler
.
Cnt
=
0
;
VSpeed
=
DataVSpeedSampler
.
Buffer
[
1
];
//VSpeed *= 9;
//VSpeed >>= 4;
DataVSpeedActual
=
VSpeed
*
10
;
}
DataVSpeedSampler
.
Timer
=
0
;
DataVSpeedSampler
.
Timer1
=
0
;
DataVSpeedSampler
.
Backup
=
DataVSpeedActual
;
DataVSpeedValid
=
1
;
}
}
}
}
...
...
@@ -251,8 +205,8 @@ void Data_Vehicle_Speed_Processing_Service(void)
else
{
DataVSPeedDamping
.
Speed
+=
Delta
;
if
(
DataVSPeedDamping
.
Speed
>
1
20
0
)
DataVSPeedDamping
.
Speed
=
1
20
0
;
if
(
DataVSPeedDamping
.
Speed
>
1
99
0
)
DataVSPeedDamping
.
Speed
=
1
99
0
;
}
}
else
// 显示值正在向实际值减小,则维持当前方向调节增加速度
...
...
@@ -300,8 +254,8 @@ void Data_Vehicle_Speed_Processing_Service(void)
else
{
DataVSPeedDamping
.
Speed
+=
Delta
;
if
(
DataVSPeedDamping
.
Speed
>
1
20
0
)
DataVSPeedDamping
.
Speed
=
1
20
0
;
if
(
DataVSPeedDamping
.
Speed
>
1
99
0
)
DataVSPeedDamping
.
Speed
=
1
99
0
;
}
}
else
// 显示值当前是减小方向
...
...
@@ -336,12 +290,14 @@ void Data_Vehicle_Speed_Processing_Service(void)
if
(
DataVSpeedValid
)
{
VSpeedCal
*=
10
8
;
VSpeedCal
*=
10
7
;
VSpeedCal
/=
100
;
if
((
VSpeedCal
%
10
)
>=
5
)
VSpeedCal
=
VSpeedCal
+
10
;
if
(
VSpeedCal
>
1990
)
{
VSpeedCal
+=
5
;
/* 四舍五入 */
VSpeedCal
=
1990
;
}
DataVSpeedDisp
=
(
uint16_t
)
VSpeedCal
;
}
else
...
...
@@ -366,24 +322,21 @@ uint16_t Get_DispVechileSpeed(void)
uint16_t
Vspeed
=
0
;
if
(
Get_Dis_KM_Unit
()
==
0
)
/* KM */
{
if
(
DataVSpeedDisp
>=
1
20
0
)
if
(
DataVSpeedDisp
>=
1
99
0
)
{
DataVSpeedDisp
=
1
20
0
;
DataVSpeedDisp
=
1
99
0
;
}
Vspeed
=
DataVSpeedDisp
;
}
else
//if (Get_Dis_KM_Unit() == 1)
/* MILE */
else
/* MILE */
{
Vspeed
=
Data_Km_To_Mile
(
DataVSpeedDisp
);
if
(
Vspeed
>=
75
0
)
if
(
Vspeed
>=
123
0
)
{
Vspeed
=
75
0
;
Vspeed
=
123
0
;
}
}
// else
// {
// ;
// }
return
Vspeed
;
}
...
...
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