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
ea2bb0b7
Commit
ea2bb0b7
authored
Jun 19, 2024
by
高士达
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'lijianshuang' into 'dev'
Lijianshuang See merge request
!31
parents
6a066f61
81fc3a52
Changes
29
Show whitespace changes
Inline
Side-by-side
Showing
29 changed files
with
1983 additions
and
469 deletions
+1983
-469
TianYing.uvprojx
...ware/Project/Cmsemicon/BAT32A239/MDK_ARM/TianYing.uvprojx
+1
-1
Application.h
Firmware/Source/Application/Application.h
+1
-0
BlueTooth.c
Firmware/Source/Application/BLUETOOTH/BlueTooth.c
+2
-0
BlueTooth.h
Firmware/Source/Application/BLUETOOTH/BlueTooth.h
+6
-1
Protocol_User.c
Firmware/Source/Application/BLUETOOTH/Protocol_User.c
+24
-2
CAN_CH0_CAN_Communication_Matrix.c
...ce/Application/CAN_APP/CAN_CH0_CAN_Communication_Matrix.c
+27
-1
CAN_CH0_CAN_Communication_Matrix.h
...ce/Application/CAN_APP/CAN_CH0_CAN_Communication_Matrix.h
+4
-0
Can_App.c
Firmware/Source/Application/CAN_User/Can_App.c
+16
-16
Can_User.c
Firmware/Source/Application/CAN_User/Can_User.c
+11
-0
Data_ESpeed.h
Firmware/Source/Application/Data_ESpeed/Data_ESpeed.h
+2
-2
Data_TPMS.c
Firmware/Source/Application/Data_TPMS/Data_TPMS.c
+223
-41
Data_TPMS.h
Firmware/Source/Application/Data_TPMS/Data_TPMS.h
+6
-2
FaultCode.c
Firmware/Source/Application/FaultCode/FaultCode.c
+49
-42
FaultCode.h
Firmware/Source/Application/FaultCode/FaultCode.h
+1
-0
code.c
Firmware/Source/Application/FaultCode/code.c
+348
-0
code.h
Firmware/Source/Application/FaultCode/code.h
+59
-0
GUI_Display.c
Firmware/Source/Application/GUI_Display/GUI_Display.c
+1
-1
SEG_DISPLAY.c
Firmware/Source/Application/SEG_DISPLAY/SEG_DISPLAY.c
+1081
-316
SEG_DISPLAY.h
Firmware/Source/Application/SEG_DISPLAY/SEG_DISPLAY.h
+70
-11
Key_user.c
Firmware/Source/Component/Key/Key_user.c
+3
-3
Key_user.h
Firmware/Source/Component/Key/Key_user.h
+4
-2
Services_Mileage_User.c
Firmware/Source/Component/Mileage/Services_Mileage_User.c
+23
-18
PowerManag_user.c
Firmware/Source/Component/PowerManagement/PowerManag_user.c
+4
-0
RTE_ADC_INTERIM_VERSION.c
...vice/Cmsemicon/BAT32A239/RTE/AD/RTE_ADC_INTERIM_VERSION.c
+5
-3
RTE_ADC_INTERIM_VERSION.h
...vice/Cmsemicon/BAT32A239/RTE/AD/RTE_ADC_INTERIM_VERSION.h
+2
-0
Sys_Task_List.c
Firmware/Source/System/Sys_Task_List.c
+7
-4
UDS_ISO14229_Services.h
Firmware/Source/UDS/UDS_ISO14229_Services.h
+3
-3
天鹰蓝牙与底板通讯协议V1.0.xlsx
Firmware/utility/串口协议/天鹰蓝牙与底板通讯协议V1.0.xlsx
+0
-0
软件变更记录(天鹰项目139).xlsx
Firmware/utility/程序释放/软件变更记录(天鹰项目139).xlsx
+0
-0
No files found.
Firmware/Project/Cmsemicon/BAT32A239/MDK_ARM/TianYing.uvprojx
View file @
ea2bb0b7
...
...
@@ -339,7 +339,7 @@
<MiscControls></MiscControls>
<Define>
USE_STDPERIPH_DRIVER,BAT32G139_64PIN
</Define>
<Undefine></Undefine>
<IncludePath>
..\..\..\..\Source\Device\Cmsemicon\BAT32A239\RTE;..\..\..\..\Source\Component;..\..\..\..\Source\Device\Cmsemicon\BAT32A239\Library\Driver\include;..\..\..\..\Source\Device\Cmsemicon\BAT32A239\Library\Device\Include;..\..\..\..\Source\Application;..\..\..\..\Source;..\..\..\..\Source\Component\LED_Driver;..\..\..\..\Source\UDS
</IncludePath>
<IncludePath>
..\..\..\..\Source\Device\Cmsemicon\BAT32A239\RTE;..\..\..\..\Source\Component;..\..\..\..\Source\Device\Cmsemicon\BAT32A239\Library\Driver\include;..\..\..\..\Source\Device\Cmsemicon\BAT32A239\Library\Device\Include;..\..\..\..\Source\Application;..\..\..\..\Source;..\..\..\..\Source\Component\LED_Driver;..\..\..\..\Source\UDS
;..\..\..\..\Source\Component\System_Monitor
</IncludePath>
</VariousControls>
</Cads>
<Aads>
...
...
Firmware/Source/Application/Application.h
View file @
ea2bb0b7
...
...
@@ -18,6 +18,7 @@
#include "Data_TPMS/Data_TPMS.h"
#include "Data_Voltage/Data_Voltage.h"
#include "FaultCode/FaultCode.h"
#include "FaultCode/code.h"
#include "BLUETOOTH/BlueTooth.h"
#include "BLUETOOTH/Protocol_CRC16.h"
#include "BLUETOOTH/Protocol_Lib.h"
...
...
Firmware/Source/Application/BLUETOOTH/BlueTooth.c
View file @
ea2bb0b7
...
...
@@ -12,6 +12,8 @@ void BlueTooth_KL30_KL15_Wakeup_Init(void)
void
Send_UUID_To_Esp32
(
void
)
{
Protocol_Send
(
MCU_ESP32_0x03
,
UUIDData
,
32
);
//Protocol_Send(MCU_ESP32_0x03, Ser2EDataForDFlash.DID_F184, 32);
}
uint8_t
Get_Navigation_St_Dis
(
void
)
{
...
...
Firmware/Source/Application/BLUETOOTH/BlueTooth.h
View file @
ea2bb0b7
...
...
@@ -10,7 +10,10 @@
#define MCU_ESP32_0x20 0x20 //蓝牙模组启动后,MCU回复ID
#define ESP32_MCU_0x01 0x01 //ESP32发送蓝牙导航信息的ID
#define ESP32_MCU_0x12 0x12 //低功耗蓝牙启动状态及蓝牙名称
#define ESP32_MCU_0x05 0x05 //esp32版本号
#define MCU_ESP32_0x03 0x03 //MCU发送UUID
#define ESP32_MCU_0x02 0x02 //ESP32发送重启请求
#define MCU_ESP32_0x04 0x04 //MCU发送重启命令
enum
{
BLUE_STATE_Starting
,
//蓝牙模组启动中
...
...
@@ -24,6 +27,8 @@ typedef struct __attribute__((aligned(4)))
uint8_t
Navigation_Code
;
/*蓝牙导向编码*/
uint32_t
Navigation_Mileage
;
/*剩余里程*/
uint8_t
BLE_St
;
uint8_t
ESP32_Reset
;
uint8_t
ESP32_SWV
;
}
BlueTooth_t
;
typedef
enum
__attribute__
((
aligned
(
4
)))
...
...
Firmware/Source/Application/BLUETOOTH/Protocol_User.c
View file @
ea2bb0b7
#include "Protocol_User.h"
#include "RTE.h"
#include "System_Monitor_User.h"
#define UART_TX_MAX_DEPTH 1024UL //(2 * 1024UL) // 4K
#define UART_RX_MAX_DEPTH (2 * 1024UL) // 4K
...
...
@@ -169,7 +169,7 @@ static Protocol_uint32_t Protocol_UartSend(const Protocol_uint8_t *pData, Protoc
static
void
Protocol_UartHandle
(
const
Protocol_Data_t
*
pData
)
{
uint8_t
ID04
[
1
]
=
{
0
};
if
(
pData
->
CmdID
==
ESP32_MCU_0x10
)
{
BlueTooth
.
BlueTooth_St
=
pData
->
Data
[
0
];
...
...
@@ -182,6 +182,28 @@ static void Protocol_UartHandle(const Protocol_Data_t *pData)
{
BlueTooth
.
BLE_St
=
pData
->
Data
[
0
];
}
else
if
(
pData
->
CmdID
==
ESP32_MCU_0x05
)
{
BlueTooth
.
ESP32_SWV
=
pData
->
Data
[
0
];
}
else
if
(
pData
->
CmdID
==
ESP32_MCU_0x02
)
{
BlueTooth
.
ESP32_Reset
=
pData
->
Data
[
0
];
if
(
BlueTooth
.
ESP32_Reset
==
1
)
{
ID04
[
0
]
=
1
;
Protocol_Send
(
MCU_ESP32_0x04
,
ID04
,
1
);
}
else
if
(
BlueTooth
.
ESP32_Reset
==
2
)
{
__NVIC_SystemReset
();
}
else
{
;
}
}
else
if
(
pData
->
CmdID
==
ESP32_MCU_0x01
)
{
if
(
pData
->
Data
[
0
]
==
0x33
)
...
...
Firmware/Source/Application/CAN_APP/CAN_CH0_CAN_Communication_Matrix.c
View file @
ea2bb0b7
...
...
@@ -79,6 +79,16 @@ const st_CANMsgAttribute CAN_CH0_CAN_MSG_CONST_ARRAY[CAN_CH0_ID_TOTAL_MAX] =
((
void
*
)
0
),
((
void
*
)
0
),
},
{
{
0x00u
,
0x00u
,
0x00u
,
0x00u
,
0x00u
,
0x00u
,
0x00u
,
0x00u
},
{
0x00u
,
0x00u
,
0x00u
,
0x00u
,
0x00u
,
0x00u
,
0x00u
,
0x00u
},
{
0x00u
,
0x00u
,
0x00u
,
0x00u
,
0x00u
,
0x00u
,
0x00u
,
0x00u
},
2000ul
,
0x373ul
,
((
void
*
)
0
),
((
void
*
)
0
),
((
void
*
)
0
),
},
};
uint8_t
Get_CAN_CH0_ID_402_Sig_ECU_Warning_Lamp
(
void
)
...
...
@@ -357,7 +367,20 @@ uint8_t Get_CAN_CH0_ID_101_Sig_ECU_101_Checksum(void)
{
return
(((
uint8_t
)((
uint8_t
)
CAN_MSG_Read
(
CAN_CH0
,
CAN_CH0_ID_CAN_0x101_Msg_Count
,
7u
)
>>
0u
)
&
0xFFu
));
}
uint32_t
Get_CAN_CH0_ID_373_Sig_Front_id
(
void
)
{
return
(((
uint32_t
)((
uint32_t
)((
uint32_t
)((
uint32_t
)((
uint32_t
)
CAN_MSG_Read
(
CAN_CH0
,
CAN_CH0_ID_CAN_0x373_Msg_Count
,
0u
)
>>
0u
)
&
0xFFu
)
<<
8u
)
+
\
((
uint32_t
)((
uint32_t
)
CAN_MSG_Read
(
CAN_CH0
,
CAN_CH0_ID_CAN_0x373_Msg_Count
,
1u
)
>>
0u
)
&
0xFFu
)
<<
8u
)
+
\
((
uint32_t
)((
uint32_t
)
CAN_MSG_Read
(
CAN_CH0
,
CAN_CH0_ID_CAN_0x373_Msg_Count
,
2u
)
>>
0u
)
&
0xFFu
)
<<
8u
)
+
\
((
uint32_t
)((
uint32_t
)
CAN_MSG_Read
(
CAN_CH0
,
CAN_CH0_ID_CAN_0x373_Msg_Count
,
3u
)
>>
0u
)
&
0xFFu
));
}
uint32_t
Get_CAN_CH0_ID_373_Sig_Rear_id
(
void
)
{
return
(((
uint32_t
)((
uint32_t
)((
uint32_t
)((
uint32_t
)((
uint32_t
)
CAN_MSG_Read
(
CAN_CH0
,
CAN_CH0_ID_CAN_0x373_Msg_Count
,
4u
)
>>
0u
)
&
0xFFu
)
<<
8u
)
+
\
((
uint32_t
)((
uint32_t
)
CAN_MSG_Read
(
CAN_CH0
,
CAN_CH0_ID_CAN_0x373_Msg_Count
,
5u
)
>>
0u
)
&
0xFFu
)
<<
8u
)
+
\
((
uint32_t
)((
uint32_t
)
CAN_MSG_Read
(
CAN_CH0
,
CAN_CH0_ID_CAN_0x373_Msg_Count
,
6u
)
>>
0u
)
&
0xFFu
)
<<
8u
)
+
\
((
uint32_t
)((
uint32_t
)
CAN_MSG_Read
(
CAN_CH0
,
CAN_CH0_ID_CAN_0x373_Msg_Count
,
7u
)
>>
0u
)
&
0xFFu
));
}
uint8_t
Co_Can_ConvertSubID_CAN_CH0
(
uint32_t
MsgID
)
{
uint8_t
u8Result
=
CAN_CH0_ID_TOTAL_MAX
;
...
...
@@ -381,6 +404,9 @@ uint8_t Co_Can_ConvertSubID_CAN_CH0(uint32_t MsgID)
case
CAN_CH0_ID_CAN_0x101_Msg
:
u8Result
=
CAN_CH0_ID_CAN_0x101_Msg_Count
;
break
;
case
CAN_CH0_ID_CAN_0x373_Msg
:
u8Result
=
CAN_CH0_ID_CAN_0x373_Msg_Count
;
break
;
default
:
u8Result
=
CAN_CH0_ID_TOTAL_MAX
;
break
;
...
...
Firmware/Source/Application/CAN_APP/CAN_CH0_CAN_Communication_Matrix.h
View file @
ea2bb0b7
...
...
@@ -14,6 +14,7 @@ typedef enum
CAN_CH0_ID_CAN_0x401_Msg_Count
,
CAN_CH0_ID_CAN_0x120_Msg_Count
,
CAN_CH0_ID_CAN_0x101_Msg_Count
,
CAN_CH0_ID_CAN_0x373_Msg_Count
,
CAN_CH0_ID_TOTAL_MAX
,
}
CAN_CH0_CAN_MSG_ID_t
;
...
...
@@ -40,6 +41,7 @@ extern const st_CAN_SendAttribute CAN_CH0_CANSendAttr[CAN_CH0_ID_SEND_TOTAL]
#define CAN_CH0_ID_CAN_0x220_Msg 0x220ul
#define CAN_CH0_ID_CAN_0x120_Msg 0x120ul
#define CAN_CH0_ID_CAN_0x101_Msg 0x101ul
#define CAN_CH0_ID_CAN_0x373_Msg 0x373ul
extern
uint8_t
Get_CAN_CH0_ID_402_Sig_ECU_Warning_Lamp
(
void
);
extern
uint8_t
Get_CAN_CH0_ID_402_Sig_ECU_DTCL2
(
void
);
...
...
@@ -95,6 +97,8 @@ extern uint8_t Get_CAN_CH0_ID_101_Sig_ECU_Engine_Speed_State(void);
extern
uint16_t
Get_CAN_CH0_ID_101_Sig_ECU_Engine_Speed
(
void
);
extern
uint8_t
Get_CAN_CH0_ID_101_Sig_ECU_101_Livecounter
(
void
);
extern
uint8_t
Get_CAN_CH0_ID_101_Sig_ECU_101_Checksum
(
void
);
extern
uint32_t
Get_CAN_CH0_ID_373_Sig_Front_id
(
void
);
extern
uint32_t
Get_CAN_CH0_ID_373_Sig_Rear_id
(
void
);
extern
uint8_t
Co_Can_ConvertSubID_CAN_CH0
(
uint32_t
MsgID
);
...
...
Firmware/Source/Application/CAN_User/Can_App.c
View file @
ea2bb0b7
...
...
@@ -34,22 +34,22 @@ void Can_Set_Buff_6EE(canlib_uint8_t CopyData[])
p6EE
->
Msg
[
i
]
=
0xFFu
;
}
}
p6EE
->
Sig
.
Vsppe_H3_TX
=
(
Vspeed_tx
>>
8
)
&
0x7u
;
p6EE
->
Sig
.
Vsppe_L8_TX
=
Vspeed_tx
&
0xFF
;
//
p6EE -> Sig.Vsppe_H3_TX = (Vspeed_tx >> 8) & 0x7u ;
//
p6EE -> Sig.Vsppe_L8_TX = Vspeed_tx & 0xFF ;
p6EE
->
Sig
.
ODO_TX_H
=
(
ODO_tx
>>
16
)
&
0xFF
;
p6EE
->
Sig
.
ODO_TX_M
=
(
ODO_tx
>>
8
)
&
0xFF
;
p6EE
->
Sig
.
ODO_TX_L
=
ODO_tx
&
0xFF
;
p6EE
->
Sig
.
Uint_TX
=
Get_Dis_KM_Unit
()
;
p6EE
->
Sig
.
Coolant_Seg_TX
=
GET_DataCoolantTempSegDisp
()
;
if
(
GET_DataCollantTempWarnflg
()
==
2
)
{
p6EE
->
Sig
.
Coolant_Warn_TX
=
1
;
}
else
{
p6EE
->
Sig
.
Coolant_Warn_TX
=
0
;
}
p6EE
->
Sig
.
Fuel_Seg_TX
=
Get_CurFuelSetp
()
;
//
p6EE -> Sig.Uint_TX = Get_Dis_KM_Unit() ;
//
p6EE -> Sig.Coolant_Seg_TX = GET_DataCoolantTempSegDisp() ;
//
if (GET_DataCollantTempWarnflg() == 2)
//
{
//
p6EE -> Sig.Coolant_Warn_TX = 1;
//
}
//
else
//
{
//
p6EE -> Sig.Coolant_Warn_TX = 0;
//
}
//
p6EE -> Sig.Fuel_Seg_TX = Get_CurFuelSetp() ;
if
(
Get_Fuel_RES
()
>
255
)
{
p6EE
->
Sig
.
Fuel_Res_TX
=
0xFF
;
...
...
@@ -77,10 +77,10 @@ void Can_Set_Buff_6EF(canlib_uint8_t CopyData[])
p6EF
->
Msg
[
i
]
=
0xFFu
;
}
}
p6EF
->
Sig
.
Espeed_TX
=
Espeed_tx
;
//
p6EF -> Sig.Espeed_TX = Espeed_tx;
p6EF
->
Sig
.
TripA_H
=
(
TripA_tx
>>
8
)
&
0xFF
;
p6EF
->
Sig
.
TripA_L
=
TripA_tx
&
0xFF
;
p6EF
->
Sig
.
Coolant_TX
=
GET_DataCoolantTempValueDisp
()
+
40
;
//
p6EF -> Sig.Coolant_TX = GET_DataCoolantTempValueDisp() + 40;
}
void
Can_Set_Buff_450
(
canlib_uint8_t
CopyData
[])
{
...
...
@@ -121,7 +121,7 @@ void Can_Set_Buff_580(canlib_uint8_t CopyData[])
p580
->
Sig
.
TPMS_LEARN_CND_BYTE3
=
0x08
;
p580
->
Sig
.
TPMS_LEARN_CND_BYTE4
=
0x00
;
}
else
if
(
Get_Tpms_TX_Flag
()
==
1
)
else
if
(
Get_Tpms_TX_Flag
()
==
2
)
{
p580
->
Sig
.
TPMS_LEARN_CND_BYTE0
=
0x31
;
p580
->
Sig
.
TPMS_LEARN_CND_BYTE1
=
0x01
;
...
...
Firmware/Source/Application/CAN_User/Can_User.c
View file @
ea2bb0b7
...
...
@@ -90,6 +90,15 @@ void Can_RX_Apply_Buff(void)
CAN_MessageCache_Init
(
CAN0MSG11
,
&
CAN_RecvMsg
);
CAN_MessageCache_OverWriteConfig
(
CAN0MSG11
,
ENABLE
);
CAN_RecvMsg
.
Id
=
0x373
;
CAN_RecvMsg
.
IDE
=
CAN_Id_Standard
;
CAN_RecvMsg
.
CacheType
=
CAN_CacheType_Rx_NoMask
;
CAN_RecvMsg
.
RTR
=
CAN_RTR_Data
;
CAN_RecvMsg
.
Interrupt
=
ENABLE
;
CAN_MessageCache_DeInit
(
CAN0MSG15
);
CAN_MessageCache_Init
(
CAN0MSG15
,
&
CAN_RecvMsg
);
CAN_MessageCache_OverWriteConfig
(
CAN0MSG15
,
ENABLE
);
CAN_RecvMsg
.
Id
=
DIAG_ID_Rx_PHY
;
CAN_RecvMsg
.
IDE
=
CAN_Id_Standard
;
CAN_RecvMsg
.
CacheType
=
CAN_CacheType_Rx_NoMask
;
...
...
@@ -335,9 +344,11 @@ void Can_Write(st_CAN_Msg *Msg)
case
0x220
:
CAN_Transmit
(
CAN0MSG10
,
&
CAN_SendMsg
);
break
;
#if (IC_Current == TY200_080000b_ty)
case
0x580
:
CAN_Transmit
(
CAN0MSG14
,
&
CAN_SendMsg
);
break
;
#endif
default:
break
;
}
...
...
Firmware/Source/Application/Data_ESpeed/Data_ESpeed.h
View file @
ea2bb0b7
...
...
@@ -11,10 +11,10 @@
#define DATA_ENGINE_RUNNING_THRESHOLD 400 //发动机运转阈值
#define DATA_ENGINE_STOP_THRESHOLD 300 //发动机停止阈值
#define DATA_ESPEED_DAMPING_FACTOR
4
//阻尼系数
#define DATA_ESPEED_DAMPING_FACTOR
3
//阻尼系数
#define DATA_ESPEED_INC_STEP 10 //速度增加时慢加速速度变化步长
#define DATA_ESPEED_DEC_STEP 20 //方向改变时急减速速度变化步长
#define DATA_ESPEED_APPR_SPEED_MIN
10
//最小逼近速度
#define DATA_ESPEED_APPR_SPEED_MIN
25
//最小逼近速度
#define DATA_ESPEED_HYSTERESIS 80 //回差
/*** 控制结构 ***/
...
...
Firmware/Source/Application/Data_TPMS/Data_TPMS.c
View file @
ea2bb0b7
...
...
@@ -2,47 +2,214 @@
#include "Data_TPMS\Data_TPMS.h"
_TPMS_Display
TPMS
;
uint32_t
LearnTime_Count
=
0
;
uint32_t
LearnTime_Count1
=
0
;
void
Data_TPMS_KL30_Init
(
void
)
{
uint
32
_t
TPMS_L
[
2
]
=
{
0
,
0
};
Data_User_EEPROM_Read
(
EM_MenuData_TPMS_LEARN
,
TPMS_L
,
2
u
);
uint
8
_t
TPMS_L
[
2
]
=
{
0
,
0
};
Data_User_EEPROM_Read
(
EM_MenuData_TPMS_LEARN
,
(
uint32_t
*
)
TPMS_L
,
1
u
);
MenuData
.
TPMS_Front_Learn
=
TPMS_L
[
0
];
MenuData
.
TPMS_Rear_Learn
=
TPMS_L
[
1
];
//MenuData.TPMS_Front_FirstLearn_Flag = TPMS_L[2];
//MenuData.TPMS_Rear_FirstLearn_Flag = TPMS_L[3];
TPMS
.
Front_Press_Value
=
0
;
TPMS
.
Rear_Press_Value
=
0
;
TPMS
.
Front_TPMS_Valid
=
0
;
TPMS
.
Rear_TPMS_Valid
=
0
;
TPMS
.
TPMS_Warning
=
0
;
TPMS
.
TPMS_Unit
=
Get_Dis_Tpms_Unit
();
TPMS
.
TPMS_Front_Learn
=
MenuData
.
TPMS_Front_Learn
;
TPMS
.
TPMS_Rear_Learn
=
MenuData
.
TPMS_Rear_Learn
;
TPMS
.
TPMS_Front_FirstLearn_Flag
=
MenuData
.
TPMS_Front_FirstLearn_Flag
;
TPMS
.
TPMS_Rear_FirstLearn_Flag
=
MenuData
.
TPMS_Rear_FirstLearn_Flag
;
}
void
Data_TPMS_KL15_WAKE_UP_Init
(
void
)
{
uint
32
_t
TPMS_L
[
2
]
=
{
0
,
0
};
Data_User_EEPROM_Read
(
EM_MenuData_TPMS_LEARN
,
TPMS_L
,
2u
);
uint
8
_t
TPMS_L
[
2
]
=
{
0
,
0
};
Data_User_EEPROM_Read
(
EM_MenuData_TPMS_LEARN
,
(
uint32_t
*
)
TPMS_L
,
1
);
MenuData
.
TPMS_Front_Learn
=
TPMS_L
[
0
];
MenuData
.
TPMS_Rear_Learn
=
TPMS_L
[
1
];
//MenuData.TPMS_Front_FirstLearn_Flag = TPMS_L[2];
//MenuData.TPMS_Rear_FirstLearn_Flag = TPMS_L[3];
TPMS
.
TPMS_Front_Learn
=
MenuData
.
TPMS_Front_Learn
;
TPMS
.
TPMS_Rear_Learn
=
MenuData
.
TPMS_Rear_Learn
;
TPMS
.
TPMS_Front_FirstLearn_Flag
=
MenuData
.
TPMS_Front_FirstLearn_Flag
;
TPMS
.
TPMS_Rear_FirstLearn_Flag
=
MenuData
.
TPMS_Rear_FirstLearn_Flag
;
}
void
Data_TPMS_Processing_Service
(
void
)
{
uint16_t
Front_TPMS
=
0
;
uint16_t
Rear_TPMS
=
0
;
uint32_t
TPMS_L
[
2
]
=
{
0
,
0
};
uint8_t
TPMS_L
[
2
]
=
{
0
,
0
};
if
(
CAN_MSG_Status
(
&
CAN_CH0_CanMsgOp
,
CAN_CH0_ID_CAN_0x341_Msg_Count
)
!=
CAN_SIG_LOST
)
{
TPMS
.
TPMS_Front_Learn
=
Get_CAN_CH0_ID_341_Sig_Front_LearningStatus
();
TPMS
.
TPMS_Rear_Learn
=
Get_CAN_CH0_ID_341_Sig_Rear_LearningStatus
();
}
else
{
TPMS
.
TPMS_Front_Learn
=
MenuData
.
TPMS_Front_Learn
;
TPMS
.
TPMS_Rear_Learn
=
MenuData
.
TPMS_Rear_Learn
;
}
if
(
TPMS
.
TPMS_Front_Learn
==
0x0
)
{
if
(
LearnTime_Count
<=
6000
)
{
LearnTime_Count
++
;
TPMS
.
TPMS_Front_Learn
=
Unstudied
;
}
else
{
if
((
MenuData
.
TPMS_Front_Learn
!=
0x2
)
&&
(
MenuData
.
TPMS_Front_Learn
!=
0x3
)
)
{
TPMS
.
TPMS_Front_Learn
=
LearningFailure
;
}
else
{
TPMS
.
TPMS_Front_Learn
=
MenuData
.
TPMS_Front_Learn
;
}
}
}
else
if
(
TPMS
.
TPMS_Front_Learn
==
0x1
)
{
if
(
LearnTime_Count
<=
6000
)
{
LearnTime_Count
++
;
TPMS
.
TPMS_Front_Learn
=
Learning
;
}
else
{
if
((
MenuData
.
TPMS_Front_Learn
!=
0x2
)
&&
(
MenuData
.
TPMS_Front_Learn
!=
0x3
)
)
{
TPMS
.
TPMS_Front_Learn
=
LearningFailure
;
}
else
{
TPMS
.
TPMS_Front_Learn
=
MenuData
.
TPMS_Front_Learn
;
}
}
}
else
if
(
TPMS
.
TPMS_Front_Learn
==
0x2
)
{
LearnTime_Count
=
0
;
if
((
Get_CAN_CH0_ID_373_Sig_Front_id
()
!=
0
)
&&
(
Get_CAN_CH0_ID_373_Sig_Front_id
()
!=
0xFFFFFFFF
))
{
TPMS
.
TPMS_Front_Learn
=
LearningCompletion
;
}
else
{
;
}
}
else
if
(
TPMS
.
TPMS_Front_Learn
==
0x3
)
{
LearnTime_Count
=
0
;
TPMS
.
TPMS_Front_Learn
=
LearningFailure
;
}
else
{
LearnTime_Count
=
0
;
TPMS
.
TPMS_Front_Learn
=
MenuData
.
TPMS_Front_Learn
;
}
if
(
TPMS
.
TPMS_Rear_Learn
==
0x0
)
{
if
(
LearnTime_Count1
<=
6000
)
{
LearnTime_Count1
++
;
TPMS
.
TPMS_Rear_Learn
=
Unstudied
;
}
else
{
if
((
MenuData
.
TPMS_Rear_Learn
!=
0x2
)
&&
(
MenuData
.
TPMS_Rear_Learn
!=
0x3
)
)
{
TPMS
.
TPMS_Rear_Learn
=
LearningFailure
;
}
else
{
TPMS
.
TPMS_Rear_Learn
=
MenuData
.
TPMS_Rear_Learn
;
}
}
}
else
if
(
TPMS
.
TPMS_Rear_Learn
==
0x1
)
{
if
(
LearnTime_Count1
<=
6000
)
{
LearnTime_Count1
++
;
TPMS
.
TPMS_Rear_Learn
=
Learning
;
}
else
{
if
((
MenuData
.
TPMS_Rear_Learn
!=
0x2
)
&&
(
MenuData
.
TPMS_Rear_Learn
!=
0x3
)
)
{
TPMS
.
TPMS_Rear_Learn
=
LearningFailure
;
}
else
{
TPMS
.
TPMS_Rear_Learn
=
MenuData
.
TPMS_Front_Learn
;
}
}
}
else
if
(
TPMS
.
TPMS_Rear_Learn
==
0x2
)
{
LearnTime_Count1
=
0
;
if
((
Get_CAN_CH0_ID_373_Sig_Rear_id
()
!=
0
)
&&
(
Get_CAN_CH0_ID_373_Sig_Rear_id
()
!=
0xFFFFFFFF
))
{
TPMS
.
TPMS_Rear_Learn
=
LearningCompletion
;
}
else
{
;
}
}
else
if
(
TPMS
.
TPMS_Rear_Learn
==
0x3
)
{
LearnTime_Count1
=
0
;
TPMS
.
TPMS_Rear_Learn
=
LearningFailure
;
}
else
{
LearnTime_Count1
=
0
;
TPMS
.
TPMS_Rear_Learn
=
MenuData
.
TPMS_Front_Learn
;
}
if
((
TPMS
.
TPMS_Front_Learn
!=
MenuData
.
TPMS_Front_Learn
)
||
(
TPMS
.
TPMS_Rear_Learn
!=
MenuData
.
TPMS_Rear_Learn
))
{
TPMS_L
[
0
]
=
TPMS
.
TPMS_Front_Learn
;
TPMS_L
[
1
]
=
TPMS
.
TPMS_Rear_Learn
;
Data_User_EEPROM_Write
(
EM_MenuData_TPMS_LEARN
,
TPMS_L
,
2u
);
if
(
TPMS
.
TPMS_Front_Learn
!=
MenuData
.
TPMS_Front_Learn
)
{
TPMS
.
TPMS_Front_FirstLearn_Flag
=
1
;
}
if
(
TPMS
.
TPMS_Rear_Learn
!=
MenuData
.
TPMS_Rear_Learn
)
{
TPMS
.
TPMS_Rear_FirstLearn_Flag
=
1
;
}
if
((
TPMS
.
TPMS_Front_Learn
==
0x2
)
||
(
TPMS
.
TPMS_Front_Learn
==
0x3
))
{
MenuData
.
TPMS_Front_Learn
=
TPMS
.
TPMS_Front_Learn
;
}
if
((
TPMS
.
TPMS_Rear_Learn
==
0x2
)
||
(
TPMS
.
TPMS_Rear_Learn
==
0x3
))
{
MenuData
.
TPMS_Rear_Learn
=
TPMS
.
TPMS_Rear_Learn
;
}
if
((
TPMS
.
TPMS_Front_Learn
==
0x2
)
||
(
TPMS
.
TPMS_Front_Learn
==
0x3
)
||
(
TPMS
.
TPMS_Rear_Learn
==
0x2
)
||
(
TPMS
.
TPMS_Rear_Learn
==
0x3
))
{
TPMS_L
[
0
]
=
MenuData
.
TPMS_Front_Learn
;
TPMS_L
[
1
]
=
MenuData
.
TPMS_Rear_Learn
;
Data_User_EEPROM_Write
(
EM_MenuData_TPMS_LEARN
,
(
uint32_t
*
)
TPMS_L
,
1u
);
}
}
TPMS
.
TPMS_Unit
=
Get_Dis_Tpms_Unit
();
Front_TPMS
=
Get_CAN_CH0_ID_341_Sig_Front_Pressure
();
Rear_TPMS
=
Get_CAN_CH0_ID_341_Sig_Rear_Pressure
();
...
...
@@ -61,10 +228,11 @@ void Data_TPMS_Processing_Service ( void )
{
if
((
Front_TPMS
==
0xFF
)
||
(
Rear_TPMS
==
0xFF
))
{
if
((
Front_TPMS
==
0xFF
)
&&
(
Rear_TPMS
!=
0xFF
))
{
TPMS
.
Front_TPMS_Valid
=
0
;
TPMS
.
Rear_TPMS_Valid
=
2
;
TPMS
.
Rear_TPMS_Valid
=
1
;
TPMS
.
Front_Press_Value
=
990
;
TPMS
.
Rear_Press_Value
=
Rear_TPMS
*
275
;
TPMS
.
Rear_Press_Value
/=
102
;
...
...
@@ -83,7 +251,7 @@ void Data_TPMS_Processing_Service ( void )
}
else
if
((
Front_TPMS
!=
0xFF
)
&&
(
Rear_TPMS
==
0xFF
))
{
TPMS
.
Front_TPMS_Valid
=
2
;
TPMS
.
Front_TPMS_Valid
=
1
;
TPMS
.
Rear_TPMS_Valid
=
0
;
TPMS
.
Rear_Press_Value
=
990
;
TPMS
.
Front_Press_Value
=
Front_TPMS
*
275
;
...
...
@@ -105,15 +273,15 @@ void Data_TPMS_Processing_Service ( void )
{
TPMS
.
Front_Press_Value
=
990
;
TPMS
.
Rear_Press_Value
=
990
;
TPMS
.
TPMS_Warning
=
0
;
//
TPMS.TPMS_Warning = 0;
TPMS
.
Front_TPMS_Valid
=
0
;
TPMS
.
Rear_TPMS_Valid
=
0
;
}
}
else
{
TPMS
.
Front_TPMS_Valid
=
2
;
TPMS
.
Rear_TPMS_Valid
=
2
;
TPMS
.
Front_TPMS_Valid
=
1
;
TPMS
.
Rear_TPMS_Valid
=
1
;
TPMS
.
Front_Press_Value
=
Front_TPMS
*
275
;
TPMS
.
Front_Press_Value
/=
102
;
if
(
TPMS
.
Front_Press_Value
>
990
)
...
...
@@ -138,54 +306,56 @@ void Data_TPMS_Processing_Service ( void )
}
}
if
(
MenuData
.
TPMS_Front_Learn
==
Unstudied
)
if
(
TPMS
.
TPMS_Front_Learn
==
Unstudied
)
{
TPMS
.
Front_TPMS_Valid
=
Unstudied
;
TPMS
.
TPMS_Front_FirstLearn_Flag
=
Unstudied
;
}
else
if
(
MenuData
.
TPMS_Front_Learn
==
Learning
)
else
if
(
TPMS
.
TPMS_Front_Learn
==
Learning
)
{
TPMS
.
Front_TPMS_Valid
=
Learning
;
TPMS
.
TPMS_Front_FirstLearn_Flag
=
Learning
;
}
else
if
(
MenuData
.
TPMS_Front_Learn
==
LearningCompletion
)
else
if
(
TPMS
.
TPMS_Front_Learn
==
LearningCompletion
)
{
TPMS
.
Front_TPMS_Valid
=
LearningCompletion
;
TPMS
.
Rear_Press_Value
=
990
;
TPMS
.
TPMS_Front_FirstLearn_Flag
=
LearningCompletion
;
}
else
if
(
MenuData
.
TPMS_Front_Learn
==
LearningFailure
)
else
if
(
TPMS
.
TPMS_Front_Learn
==
LearningFailure
)
{
TPMS
.
Front_TPMS_Valid
=
LearningFailure
;
TPMS
.
TPMS_Front_FirstLearn_Flag
=
LearningFailure
;
TPMS
.
Front_Press_Value
=
990
;
}
else
{
;
}
if
(
MenuData
.
TPMS_Rear_Learn
==
Unstudied
)
if
(
TPMS
.
TPMS_Rear_Learn
==
Unstudied
)
{
TPMS
.
Rear_TPMS_Valid
=
Unstudied
;
TPMS
.
TPMS_Rear_FirstLearn_Flag
=
Unstudied
;
}
else
if
(
MenuData
.
TPMS_Rear_Learn
==
Learning
)
else
if
(
TPMS
.
TPMS_Rear_Learn
==
Learning
)
{
TPMS
.
Rear_TPMS_Valid
=
Learning
;
TPMS
.
TPMS_Rear_FirstLearn_Flag
=
Learning
;
}
else
if
(
MenuData
.
TPMS_Rear_Learn
==
LearningCompletion
)
else
if
(
TPMS
.
TPMS_Rear_Learn
==
LearningCompletion
)
{
TPMS
.
Rear_TPMS_Valid
=
LearningCompletion
;
TPMS
.
Front_Press_Value
=
990
;
TPMS
.
TPMS_Rear_FirstLearn_Flag
=
LearningCompletion
;
}
else
if
(
MenuData
.
TPMS_Rear_Learn
==
LearningFailure
)
else
if
(
TPMS
.
TPMS_Rear_Learn
==
LearningFailure
)
{
TPMS
.
Rear_TPMS_Valid
=
LearningFailure
;
TPMS
.
TPMS_Rear_FirstLearn_Flag
=
LearningFailure
;
TPMS
.
Rear_Press_Value
=
990
;
}
else
{
;
}
if
((
MenuData
.
TPMS_Rear_Learn
!=
LearningCompletion
)
&&
(
MenuData
.
TPMS_Front_Learn
!=
LearningCompletion
))
{
TPMS
.
TPMS_Warning
=
0
;
}
//
if ((MenuData.TPMS_Rear_Learn != LearningCompletion) && (MenuData.TPMS_Front_Learn != LearningCompletion))
//
{
//
TPMS.TPMS_Warning = 0;
//
}
}
else
...
...
@@ -215,7 +385,7 @@ uint8_t Get_Led_TPMS_Waring (void)
return
TPMS
.
TPMS_Warning
;
}
/*0:
未学习,无效,常显-- 1:学习中,无效,闪烁-- 2:学习完成,有效,按实际胎压数值显示 3:学习失败,无效,最大值闪烁显示
*/
/*0:
无效,常显-- 1:有效,按实际胎压数值显示
*/
uint8_t
Get_Front_TPMS_Sig_Vaild
(
void
)
{
return
TPMS
.
Front_TPMS_Valid
;
...
...
@@ -282,3 +452,15 @@ uint16_t Get_Front_TPMS_TX (void)
}
return
value
;
}
/*前轮胎压学习结果 0-未学习“--”常显 1-学习中“--”闪烁 2-学习成功,正常显示数值 3-学习失败,闪烁显示最大值99*/
uint8_t
Get_Front_FirstLearn_Flag
(
void
)
{
return
TPMS
.
TPMS_Front_FirstLearn_Flag
;
}
/*后轮胎压学习结果 0-未学习“--”常显 1-学习中“--”闪烁 2-学习成功,正常显示数值 3-学习失败,闪烁显示最大值99*/
uint8_t
Get_Rear_FirstLearn_Flag
(
void
)
{
return
TPMS
.
TPMS_Rear_FirstLearn_Flag
;
}
Firmware/Source/Application/Data_TPMS/Data_TPMS.h
View file @
ea2bb0b7
...
...
@@ -10,8 +10,10 @@ typedef struct __attribute__((aligned(4)))
uint8_t
Rear_TPMS_Valid
;
uint8_t
TPMS_Warning
;
uint8_t
TPMS_Unit
;
uint32_t
TPMS_Front_Learn
;
uint32_t
TPMS_Rear_Learn
;
uint8_t
TPMS_Front_Learn
;
uint8_t
TPMS_Rear_Learn
;
uint8_t
TPMS_Front_FirstLearn_Flag
;
uint8_t
TPMS_Rear_FirstLearn_Flag
;
}
_TPMS_Display
;
typedef
enum
...
...
@@ -32,4 +34,6 @@ uint16_t Get_Rear_TPMS_Sig_Value (void);
uint16_t
Get_Rear_TPMS_TX
(
void
);
uint16_t
Get_Front_TPMS_TX
(
void
);
void
Data_TPMS_KL15_WAKE_UP_Init
(
void
);
uint8_t
Get_Front_FirstLearn_Flag
(
void
);
uint8_t
Get_Rear_FirstLearn_Flag
(
void
);
#endif
Firmware/Source/Application/FaultCode/FaultCode.c
View file @
ea2bb0b7
...
...
@@ -13,15 +13,15 @@ void Fault_Code_Receive(uint8_t CopyData[])
{
uint8_t
i
=
0
;
ECU_FaultCode_Processing_Service
();
//
ECU_FaultCode_Processing_Service();
}
uint8_t
FaultCode_Compare
(
uint32_t
FaultCode
,
uint32_t
*
CodeList
,
uint8_t
len
)
uint8_t
FaultCode_Compare
(
uint32_t
FaultCode
,
uint32_t
*
CodeList
,
uint8_t
len
)
{
uint8_t
i
=
0
;
uint8_t
result
=
0
;
for
(
i
=
0
;
i
<
len
;
i
++
)
for
(
i
=
0
;
i
<
len
;
i
++
)
{
if
(
FaultCode
==
CodeList
[
i
])
if
(
FaultCode
==
CodeList
[
i
])
{
result
=
1
;
}
...
...
@@ -50,7 +50,10 @@ static void Fault_Code_App_SortNByte(uint32_t *SortData, uint8_t len)
}
}
}
void
ECU_FaultCode_Processing_Service
(
void
)
uint32_t
u32YZHDArray
[
200
];
uint32_t
u32YZHDArraycount
=
0
;
uint32_t
u32YZHDCount
=
0
;
void
ECU_FaultCode_Processing_Service
(
void
)
{
uint8_t
DTCH1
=
0
;
uint8_t
DTCM1
=
0
;
...
...
@@ -59,15 +62,16 @@ void ECU_FaultCode_Processing_Service ( void )
uint32_t
DTC1
=
0
;
uint32_t
DTC2
=
0
;
uint32_t
i
=
0
;
if
(
Common_Get_IG_Sts
()
==
COMMON_POWER_ON
)
if
(
Common_Get_IG_Sts
()
==
COMMON_POWER_ON
)
{
if
(
CAN_MSG_Status
(
&
CAN_CH0_CanMsgOp
,
CAN_CH0_ID_CAN_0x402_Msg_Count
)
==
CAN_SIG_LOST
)
if
(
CAN_MSG_Status
(
&
CAN_CH0_CanMsgOp
,
CAN_CH0_ID_CAN_0x402_Msg_Count
)
==
CAN_SIG_LOST
)
{
memset
(
FaultCode_Data
,
0
,
FaultCode_Number
);
memset
(
FaultCode_Data
,
0
,
FaultCode_Number
);
FaultCode_Number
=
0
;
}
else
{
u32YZHDCount
=
0
;
DTCH1
=
Get_CAN_CH0_ID_402_Sig_ECU_DTCH1
();
DTCM1
=
Get_CAN_CH0_ID_402_Sig_ECU_DTCM1
();
DTCH2
=
Get_CAN_CH0_ID_402_Sig_ECU_DTCH2
();
...
...
@@ -80,7 +84,7 @@ void ECU_FaultCode_Processing_Service ( void )
}
else
{
DTC1
|=
(
DTCH1
&
0xF0
)
>>
4
;
DTC1
|=
(
DTCH1
&
0xF0
)
>>
4
;
}
DTC1
<<=
8
;
if
((
DTCH1
&
0xF
)
>=
0xA
)
...
...
@@ -89,7 +93,7 @@ void ECU_FaultCode_Processing_Service ( void )
}
else
{
DTC1
|=
DTCH1
&
0xF
;
DTC1
|=
DTCH1
&
0xF
;
}
DTC1
<<=
8
;
...
...
@@ -99,7 +103,7 @@ void ECU_FaultCode_Processing_Service ( void )
}
else
{
DTC1
|=
(
DTCM1
&
0xF0
)
>>
4
;
DTC1
|=
(
DTCM1
&
0xF0
)
>>
4
;
}
DTC1
<<=
8
;
if
((
DTCM1
&
0xF
)
>=
0xA
)
...
...
@@ -108,7 +112,7 @@ void ECU_FaultCode_Processing_Service ( void )
}
else
{
DTC1
|=
DTCM1
&
0xF
;
DTC1
|=
DTCM1
&
0xF
;
}
if
(((
DTCH2
&
0xF0
)
>>
4
)
>=
0xA
)
...
...
@@ -117,7 +121,7 @@ void ECU_FaultCode_Processing_Service ( void )
}
else
{
DTC2
|=
(
DTCH2
&
0xF0
)
>>
4
;
DTC2
|=
(
DTCH2
&
0xF0
)
>>
4
;
}
DTC2
<<=
8
;
if
((
DTCH2
&
0xF
)
>=
0xA
)
...
...
@@ -126,7 +130,7 @@ void ECU_FaultCode_Processing_Service ( void )
}
else
{
DTC2
|=
DTCH2
&
0xF
;
DTC2
|=
DTCH2
&
0xF
;
}
DTC2
<<=
8
;
...
...
@@ -136,7 +140,7 @@ void ECU_FaultCode_Processing_Service ( void )
}
else
{
DTC2
|=
(
DTCM2
&
0xF0
)
>>
4
;
DTC2
|=
(
DTCM2
&
0xF0
)
>>
4
;
}
DTC2
<<=
8
;
if
((
DTCM2
&
0xF
)
>=
0xA
)
...
...
@@ -145,10 +149,9 @@ void ECU_FaultCode_Processing_Service ( void )
}
else
{
DTC2
|=
DTCM2
&
0xF
;
DTC2
|=
DTCM2
&
0xF
;
}
if
(
DTC_Amnt_Number
==
0
)
{
for
(
i
=
0
;
i
<
FualtCodeMax
;
i
++
)
...
...
@@ -159,29 +162,29 @@ void ECU_FaultCode_Processing_Service ( void )
}
DTC_Amnt_Number_Count
=
0
;
}
if
(
DTC_Amnt_Number_Count
<
DTC_Amnt_Number
)
if
(
DTC_Amnt_Number_Count
<
DTC_Amnt_Number
)
{
if
((
DTC1
!=
0
)
&&
(
FaultCode_Compare
(
DTC1
,
&
DTC_Data_Count
[
0
],
DTC_Amnt_Number_Count
)
==
0
))
{
DTC_Data_Count
[
DTC_Amnt_Number_Count
]
=
DTC1
;
DTC_Amnt_Number_Count
++
;
DTC_Amnt_Number_Count
++
;
Fault_Code_App_SortNByte
(
DTC_Data_Count
,
DTC_Amnt_Number_Count
);
}
}
if
(
DTC_Amnt_Number_Count
<
DTC_Amnt_Number
)
if
(
DTC_Amnt_Number_Count
<
DTC_Amnt_Number
)
{
if
((
DTC2
!=
0
)
&&
(
FaultCode_Compare
(
DTC2
,
&
DTC_Data_Count
[
0
],
DTC_Amnt_Number_Count
)
==
0
))
{
DTC_Data_Count
[
DTC_Amnt_Number_Count
]
=
DTC2
;
DTC_Amnt_Number_Count
++
;
DTC_Amnt_Number_Count
++
;
Fault_Code_App_SortNByte
(
DTC_Data_Count
,
DTC_Amnt_Number_Count
);
}
}
if
(
DTC_Amnt_Number_Count
>
DTC_Amnt_Number
)
if
(
DTC_Amnt_Number_Count
>
DTC_Amnt_Number
)
{
for
(
i
=
0
;
i
<
FualtCodeMax
;
i
++
)
{
//FaultCode_Data[i] = 0;
//
FaultCode_Data[i] = 0;
DTC_Data_Count
[
i
]
=
0
;
DTC_Data
[
i
]
=
0
;
}
...
...
@@ -189,7 +192,7 @@ void ECU_FaultCode_Processing_Service ( void )
}
if
(
DTC_Amnt_Number_Count
==
DTC_Amnt_Number
)
{
for
(
i
=
0
;
i
<
DTC_Amnt_Number_Count
;
i
++
)
for
(
i
=
0
;
i
<
DTC_Amnt_Number_Count
;
i
++
)
{
DTC_Data
[
i
]
=
DTC_Data_Count
[
i
];
DTC_Data_Count
[
i
]
=
0
;
...
...
@@ -198,21 +201,25 @@ void ECU_FaultCode_Processing_Service ( void )
FaultCode_Number
=
DTC_Amnt_Number
;
DTC_Amnt_Number_Count
=
0
;
for
(
i
=
0
;
i
<
FaultCode_Number
;
i
++
)
for
(
i
=
0
;
i
<
FaultCode_Number
;
i
++
)
{
if
(
FaultCode_Data
[
i
]
!=
DTC_Data
[
i
])
if
(
FaultCode_Data
[
i
]
!=
DTC_Data
[
i
])
{
FaultCode_Data
[
i
]
=
DTC_Data
[
i
];
Fault_Code_App_SortNByte
(
FaultCode_Data
,
FaultCode_Number
);
}
}
}
if
(
u32YZHDArraycount
<
200
)
{
u32YZHDArray
[
u32YZHDArraycount
++
]
=
u32YZHDCount
;
}
}
}
else
{
memset
(
FaultCode_Data
,
0
,
FaultCode_Number
);
memset
(
FaultCode_Data
,
0
,
FaultCode_Number
);
FaultCode_Number
=
0
;
}
}
Firmware/Source/Application/FaultCode/FaultCode.h
View file @
ea2bb0b7
...
...
@@ -12,4 +12,5 @@ void ECU_FaultCode_Processing_Service ( void );
extern
void
Fault_Code_Receive
(
uint8_t
CopyData
[]);
static
void
Fault_Code_App_SortNByte
(
uint32_t
*
SortData
,
uint8_t
len
);
static
void
Fault_Code_App_Swap
(
uint32_t
*
pData1
,
uint32_t
*
pData2
);
extern
uint32_t
u32YZHDCount
;
#endif
Firmware/Source/Application/FaultCode/code.c
0 → 100644
View file @
ea2bb0b7
#include "code.h"
static
_st_Init
FaultCodeInit
;
static
uint16_t
u16FaultCodeDtcCount
=
0
;
static
uint16_t
u16FaultCodeDtcCountBack
=
0
;
static
uint16_t
u16FaultCodeDtcCounttemp
=
0
;
static
_st_FaultCode
stFaultCode
[
MaxFaultCode
]
=
{
0
};
static
_st_FaultCode
stFaultCodeBack
[
MaxFaultCode
]
=
{
0
};
static
_st_FaultCode
stFaultCodetemp
[
MaxFaultCode
]
=
{
0
};
static
uint8_t
u8FaultCodeValid
=
0
;
uint32_t
Get_FaultCodeDtc1
(
void
)
{
uint32_t
u16FaultCode
=
0x0000
;
uint8_t
DTCH1
=
0
;
uint8_t
DTCM1
=
0
;
uint32_t
DTC1
=
0
;
DTCH1
=
Get_CAN_CH0_ID_402_Sig_ECU_DTCH1
();
DTCM1
=
Get_CAN_CH0_ID_402_Sig_ECU_DTCM1
();
if
(((
DTCH1
&
0xF0
)
>>
4
)
>=
0xA
)
{
DTC1
|=
((
DTCH1
&
0xF0
)
>>
4
)
+
3
;
}
else
{
DTC1
|=
(
DTCH1
&
0xF0
)
>>
4
;
}
DTC1
<<=
8
;
if
((
DTCH1
&
0xF
)
>=
0xA
)
{
DTC1
|=
(
DTCH1
&
0xF
)
+
3
;
}
else
{
DTC1
|=
DTCH1
&
0xF
;
}
DTC1
<<=
8
;
if
(((
DTCM1
&
0xF0
)
>>
4
)
>=
0xA
)
{
DTC1
|=
((
DTCM1
&
0xF0
)
>>
4
)
+
3
;
}
else
{
DTC1
|=
(
DTCM1
&
0xF0
)
>>
4
;
}
DTC1
<<=
8
;
if
((
DTCM1
&
0xF
)
>=
0xA
)
{
DTC1
|=
(
DTCM1
&
0xF
)
+
3
;
}
else
{
DTC1
|=
DTCM1
&
0xF
;
}
if
(
DTC1
==
0
)
{
return
0XFFFF
;
}
u16FaultCode
=
DTC1
;
return
u16FaultCode
;
}
uint32_t
Get_FaultCodeDtc2
(
void
)
{
uint32_t
u16FaultCode
=
0x0000
;
uint8_t
DTCH2
=
0
;
uint8_t
DTCM2
=
0
;
uint32_t
DTC2
=
0
;
DTCH2
=
Get_CAN_CH0_ID_402_Sig_ECU_DTCH2
();
DTCM2
=
Get_CAN_CH0_ID_402_Sig_ECU_DTCM2
();
if
(((
DTCH2
&
0xF0
)
>>
4
)
>=
0xA
)
{
DTC2
|=
((
DTCH2
&
0xF0
)
>>
4
)
+
3
;
}
else
{
DTC2
|=
(
DTCH2
&
0xF0
)
>>
4
;
}
DTC2
<<=
8
;
if
((
DTCH2
&
0xF
)
>=
0xA
)
{
DTC2
|=
(
DTCH2
&
0xF
)
+
3
;
}
else
{
DTC2
|=
DTCH2
&
0xF
;
}
DTC2
<<=
8
;
if
(((
DTCM2
&
0xF0
)
>>
4
)
>=
0xA
)
{
DTC2
|=
((
DTCM2
&
0xF0
)
>>
4
)
+
3
;
}
else
{
DTC2
|=
(
DTCM2
&
0xF0
)
>>
4
;
}
DTC2
<<=
8
;
if
((
DTCM2
&
0xF
)
>=
0xA
)
{
DTC2
|=
(
DTCM2
&
0xF
)
+
3
;
}
else
{
DTC2
|=
DTCM2
&
0xF
;
}
if
(
DTC2
==
0
)
{
return
0XFFFF
;
}
u16FaultCode
=
DTC2
;
return
u16FaultCode
;
}
uint16_t
Get_FaultCodeNum
(
void
)
{
uint16_t
u16FaultCode
=
0x0000
;
u16FaultCode
=
Get_CAN_CH0_ID_402_Sig_ECU_DTCAmnt
();
return
u16FaultCode
;
}
uint16_t
Get_FaultCodeValid
(
void
)
{
return
1
;
}
/**
* @brief 故障码初始化函数
*/
void
FaultCode_Init
(
void
)
{
uint16_t
i
=
0
;
for
(
i
=
0
;
i
<
MaxFaultCode
;
i
++
)
{
stFaultCode
[
i
].
u16FaultCode
=
0
;
stFaultCode
[
i
].
u16FaultCodeCount
=
0
;
stFaultCodeBack
[
i
].
u16FaultCode
=
0
;
stFaultCodeBack
[
i
].
u16FaultCodeCount
=
0
;
stFaultCodetemp
[
i
].
u16FaultCode
=
0
;
stFaultCodetemp
[
i
].
u16FaultCodeCount
=
0
;
}
FaultCodeInit
.
callbacks
[
DTC1
]
=
Get_FaultCodeDtc1
;
FaultCodeInit
.
callbacks
[
DTC2
]
=
Get_FaultCodeDtc2
;
FaultCodeInit
.
callbacks
[
DTC3
]
=
NULL
;
FaultCodeInit
.
FaultCodeVaildCbk
=
Get_FaultCodeValid
;
FaultCodeInit
.
FaultCodeNumCbk
=
Get_FaultCodeNum
;
u16FaultCodeDtcCountBack
=
0
;
u8FaultCodeValid
=
0
;
}
/**
* @brief 查询当前故障码是否存在
* @param u32FaultCode 故障码
* @param FaultCodeGrpup 故障码组
* @param len 故障码组长度
* @return 0:存在 1:不存在 2:无效故障码不存储
*/
uint8_t
FaultCode_Check
(
const
uint32_t
u32FaultCode
,
const
_st_FaultCode
*
FaultCodeGrpup
,
const
uint16_t
len
)
{
uint16_t
i
=
0
;
uint8_t
Result
=
1
;
if
((
u32FaultCode
==
0XFFFF
)
||
(
u32FaultCode
==
0
))
{
return
2
;
}
if
(
len
==
1
)
{
return
1
;
}
for
(
i
=
0
;
i
<
len
;
i
++
)
{
if
(
u32FaultCode
==
FaultCodeGrpup
[
i
].
u16FaultCode
)
{
Result
=
0
;
return
Result
;
}
}
return
Result
;
}
/**
* 添加新的故障码到故障码数组中。
* @param faultCodes 指向故障码数组的指针。
* @param count 指向当前已添加故障码数量的指针。
* @param faultCode 要添加的故障码。
* @param len 实际故障码数量,用于检测数组中是否存在当前故障码
* @note 如果故障码数组已满或者新的故障码已存在,则不添加。
*/
void
AddNewFaultCode
(
_st_FaultCode
*
faultCodes
,
uint16_t
*
count
,
uint32_t
faultCode
,
uint16_t
len
)
{
if
(
*
count
>=
MaxFaultCode
||
FaultCode_Check
(
faultCode
,
faultCodes
,
len
)
!=
1
)
{
return
;
// 数组已满或故障码已存在,不进行添加
}
faultCodes
[
*
count
].
u16FaultCode
=
faultCode
;
(
*
count
)
++
;
}
/**
* @brief 故障码服务函数
* @param Cycle 建议10ms调用 防止故障码数量过多 接收缓慢
*/
void
FaultCode_Service
(
uint16_t
Cycle
)
{
uint32_t
Dtc1
=
0XFFFF
;
uint32_t
Dtc2
=
0XFFFF
;
uint32_t
Dtc3
=
0XFFFF
;
uint16_t
FaultCodeSum
=
0
;
uint16_t
i
=
0
;
uint32_t
tempFaultCode
=
0
;
uint16_t
Vaild
=
0
;
if
(
FaultCodeInit
.
callbacks
[
DTC1
]
!=
NULL
)
{
Dtc1
=
FaultCodeInit
.
callbacks
[
DTC1
]();
}
if
(
FaultCodeInit
.
callbacks
[
DTC2
]
!=
NULL
)
{
Dtc2
=
FaultCodeInit
.
callbacks
[
DTC2
]();
}
if
(
FaultCodeInit
.
callbacks
[
DTC3
]
!=
NULL
)
{
Dtc3
=
FaultCodeInit
.
callbacks
[
DTC3
]();
}
if
(
FaultCodeInit
.
FaultCodeVaildCbk
!=
NULL
)
{
Vaild
=
FaultCodeInit
.
FaultCodeVaildCbk
();
}
if
(
FaultCodeInit
.
FaultCodeNumCbk
!=
NULL
)
{
FaultCodeSum
=
FaultCodeInit
.
FaultCodeNumCbk
();
}
if
(
FaultCodeSum
>
MaxFaultCode
)
{
FaultCodeSum
=
MaxFaultCode
;
}
if
((
Vaild
)
&&
(
FaultCodeSum
>
0
))
{
if
(
u16FaultCodeDtcCountBack
<
FaultCodeSum
)
/* 当前存储故障码是否小于实际故障码数量 */
{
/* 存储故障码并检查数组中是否存在 */
AddNewFaultCode
(
stFaultCodeBack
,
&
u16FaultCodeDtcCountBack
,
Dtc1
,
FaultCodeSum
);
AddNewFaultCode
(
stFaultCodeBack
,
&
u16FaultCodeDtcCountBack
,
Dtc2
,
FaultCodeSum
);
}
/* 接收故障码大于0后进行显示 */
if
(
u16FaultCodeDtcCountBack
>
0
)
{
/* 当前存储故障码等于实际故障码数量 用于实时更新故障码*/
if
(
u16FaultCodeDtcCountBack
==
FaultCodeSum
)
{
u16FaultCodeDtcCountBack
=
0
;
}
/* 更新故障码显示 */
for
(
i
=
0
;
i
<
FaultCodeSum
;
i
++
)
{
if
(
stFaultCodetemp
[
i
].
u16FaultCode
!=
stFaultCodeBack
[
i
].
u16FaultCode
)
{
stFaultCodetemp
[
i
].
u16FaultCode
=
stFaultCodeBack
[
i
].
u16FaultCode
;
stFaultCode
[
i
].
u16FaultCode
=
stFaultCodetemp
[
i
].
u16FaultCode
;
}
}
u8FaultCodeValid
=
1
;
/* 大于故障码数量的数组进行清0处理 */
for
(
i
=
FaultCodeSum
;
i
<
MaxFaultCode
;
i
++
)
{
stFaultCode
[
i
].
u16FaultCode
=
0
;
stFaultCodetemp
[
i
].
u16FaultCode
=
0
;
stFaultCodeBack
[
i
].
u16FaultCode
=
0
;
}
}
if
(
stFaultCode
[
0
].
u16FaultCode
!=
0XFFFF
)
{
/* 故障码计时 */
if
(
stFaultCode
[
0
].
u16FaultCodeCount
<
FaultCodeCount
)
{
stFaultCode
[
0
].
u16FaultCodeCount
+=
Cycle
;
}
else
{
/* 计时结束 更新位置 */
stFaultCode
[
0
].
u16FaultCodeCount
=
0
;
tempFaultCode
=
stFaultCode
[
0
].
u16FaultCode
;
if
(
FaultCodeSum
>
1
)
{
for
(
i
=
0
;
i
<
FaultCodeSum
-
1
;
i
++
)
{
stFaultCode
[
i
].
u16FaultCode
=
stFaultCode
[
i
+
1
].
u16FaultCode
;
}
stFaultCode
[
FaultCodeSum
-
1
].
u16FaultCode
=
tempFaultCode
;
}
}
}
}
else
{
u8FaultCodeValid
=
0
;
for
(
i
=
0
;
i
<
MaxFaultCode
;
i
++
)
{
stFaultCode
[
i
].
u16FaultCode
=
0
;
stFaultCode
[
i
].
u16FaultCodeCount
=
0
;
stFaultCodeBack
[
i
].
u16FaultCode
=
0
;
stFaultCodeBack
[
i
].
u16FaultCodeCount
=
0
;
stFaultCodetemp
[
i
].
u16FaultCode
=
0
;
stFaultCodetemp
[
i
].
u16FaultCodeCount
=
0
;
}
u16FaultCodeDtcCountBack
=
0
;
}
}
/**
* @brief 获取当前故障码
*/
uint32_t
Get_Current_FaultCode
(
void
)
{
return
stFaultCode
[
0
].
u16FaultCode
;
}
uint8_t
Get_FaultCode_Valid
(
void
)
{
return
u8FaultCodeValid
;
}
Firmware/Source/Application/FaultCode/code.h
0 → 100644
View file @
ea2bb0b7
#ifndef CODE_H
#define CODE_H
#include <stdint.h>
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include "Application.h"
/*故障码类型A can报文轮询发送方式*/
#define FaultCodeType_A 1
#define FaultCodeType FaultCodeType_A
#define MaxFaultCode 72
#define FaultCodeCount 5000
typedef
enum
{
DTC1
,
DTC2
,
DTC3
,
NUM_FAULT_TYPES
,
}
FaultCodeType_Num
;
typedef
uint32_t
(
*
FaultCodeCallback
)(
void
);
/* 故障码回调函数 */
typedef
uint16_t
(
*
FaultCodeNumback
)(
void
);
/* 故障码个数回调函数 */
typedef
uint16_t
(
*
FaultCodeValidback
)(
void
);
/* 故障码有效回调函数 */
typedef
struct
{
uint32_t
u16FaultCode
;
/* 故障码 */
uint16_t
u16FaultCodeCount
;
/* 故障码总数 */
}
_st_FaultCode
;
typedef
struct
{
FaultCodeCallback
callbacks
[
NUM_FAULT_TYPES
];
FaultCodeNumback
FaultCodeNumCbk
;
FaultCodeValidback
FaultCodeVaildCbk
;
}
_st_Init
;
extern
void
FaultCode_Service
(
uint16_t
Cycle
);
extern
void
FaultCode_Init
(
void
);
extern
uint32_t
Get_Current_FaultCode
(
void
);
extern
uint8_t
Get_FaultCode_Valid
(
void
);
#endif
\ No newline at end of file
Firmware/Source/Application/GUI_Display/GUI_Display.c
View file @
ea2bb0b7
...
...
@@ -129,7 +129,7 @@ void Gauge_Service(void)
SEG_SET_CoolantDial
(
1
,
GET_DataCoolantTempSegDisp
(),
GET_DataCoolantTempValueDisp
(),
GET_DataCollantTempSegValid
());
SEG_SET_Voltage_NUM
(
1
,
Get_Battery_Voltage
());
#if(IC_Current == TY200_080000b_ty)
SEG_SET_TPMS_
NUM
(
1
,
Get_Front_TPMS_Sig_Value
(),
Get_Rear_TPMS_Sig_Value
(),
Get_Dis_Tpms_Unit
(),
Get_Front_TPMS_Sig_Vaild
(),
Get_Rear_TPMS_Sig_Vaild
());
SEG_SET_TPMS_
DISPLAY
(
1
,
Get_Front_TPMS_Sig_Value
(),
Get_Rear_TPMS_Sig_Value
(),
Get_Dis_Tpms_Unit
(),
Get_Front_TPMS_Sig_Vaild
(),
Get_Rear_TPMS_Sig_Vaild
());
#endif
SEG_SET_Navigation_STS
(
Get_Navigation_St_Dis
(),
Get_Navigation_Code_Dis
(),
Get_Navigation_Mileage_Dis
());
...
...
Firmware/Source/Application/SEG_DISPLAY/SEG_DISPLAY.c
View file @
ea2bb0b7
...
...
@@ -366,7 +366,9 @@ void SEG_SET_Navigation_STS(uint8_t m_Flag, uint8_t m_Code, uint32_t m_Mileage)
{
switch
(
m_Code
)
{
case
NaviIconType_LEFT
:
case
EC_NAVI_ICON_LEFT
:
case
EC_NAVI_ICON_ENTRY_RING_LEFT
:
case
EC_NAVI_ICON_ENTRY_LEFT_RING_LEFT
:
IC2_SEG164
=
IC_SEG_OFF
;
IC2_SEG165
=
IC_SEG_OFF
;
IC2_SEG169
=
IC_SEG_ON
;
...
...
@@ -387,7 +389,9 @@ void SEG_SET_Navigation_STS(uint8_t m_Flag, uint8_t m_Code, uint32_t m_Mileage)
LED_Driver_Channel_Set
(
LampChannel_0
,
LampCh0_15_ARRIVED_TOLLGATE
,
LED_OFF
);
LED_Driver_Channel_Set
(
LampChannel_0
,
LampCh0_16_ARRIVED_TUNNEL
,
LED_OFF
);
break
;
case
NaviIconType_RIGHT
:
case
EC_NAVI_ICON_RIGHT
:
case
EC_NAVI_ICON_ENTRY_RING_RIGHT
:
case
EC_NAVI_ICON_ENTRY_LEFT_RING_RIGHT
:
IC2_SEG164
=
IC_SEG_OFF
;
IC2_SEG165
=
IC_SEG_OFF
;
IC2_SEG169
=
IC_SEG_ON
;
...
...
@@ -408,7 +412,9 @@ void SEG_SET_Navigation_STS(uint8_t m_Flag, uint8_t m_Code, uint32_t m_Mileage)
LED_Driver_Channel_Set
(
LampChannel_0
,
LampCh0_15_ARRIVED_TOLLGATE
,
LED_OFF
);
LED_Driver_Channel_Set
(
LampChannel_0
,
LampCh0_16_ARRIVED_TUNNEL
,
LED_OFF
);
break
;
case
NaviIconType_LEFT_FRONT
:
case
EC_NAVI_ICON_LEFT_FRONT
:
case
EC_NAVI_ICON_MERGE_LEFT
:
case
EC_NAVI_ICON_ROTARY_SLIGHT_LEFT
:
IC2_SEG164
=
IC_SEG_OFF
;
IC2_SEG165
=
IC_SEG_ON
;
IC2_SEG169
=
IC_SEG_ON
;
...
...
@@ -429,7 +435,9 @@ void SEG_SET_Navigation_STS(uint8_t m_Flag, uint8_t m_Code, uint32_t m_Mileage)
LED_Driver_Channel_Set
(
LampChannel_0
,
LampCh0_15_ARRIVED_TOLLGATE
,
LED_OFF
);
LED_Driver_Channel_Set
(
LampChannel_0
,
LampCh0_16_ARRIVED_TUNNEL
,
LED_OFF
);
break
;
case
NaviIconType_RIGHT_FRONT
:
case
EC_NAVI_ICON_RIGHT_FRONT
:
case
EC_NAVI_ICON_MERGE_RIGHT
:
case
EC_NAVI_ICON_ROTARY_SLIGHT_RIGHT
:
IC2_SEG164
=
IC_SEG_OFF
;
IC2_SEG165
=
IC_SEG_ON
;
IC2_SEG169
=
IC_SEG_ON
;
...
...
@@ -450,7 +458,8 @@ void SEG_SET_Navigation_STS(uint8_t m_Flag, uint8_t m_Code, uint32_t m_Mileage)
LED_Driver_Channel_Set
(
LampChannel_0
,
LampCh0_15_ARRIVED_TOLLGATE
,
LED_OFF
);
LED_Driver_Channel_Set
(
LampChannel_0
,
LampCh0_16_ARRIVED_TUNNEL
,
LED_OFF
);
break
;
case
NaviIconType_LEFT_BACK
:
case
EC_NAVI_ICON_LEFT_BACK
:
case
EC_NAVI_ICON_ROTARY_SHARP_LEFT
:
IC2_SEG164
=
IC_SEG_OFF
;
IC2_SEG165
=
IC_SEG_OFF
;
IC2_SEG169
=
IC_SEG_OFF
;
...
...
@@ -471,7 +480,8 @@ void SEG_SET_Navigation_STS(uint8_t m_Flag, uint8_t m_Code, uint32_t m_Mileage)
LED_Driver_Channel_Set
(
LampChannel_0
,
LampCh0_15_ARRIVED_TOLLGATE
,
LED_OFF
);
LED_Driver_Channel_Set
(
LampChannel_0
,
LampCh0_16_ARRIVED_TUNNEL
,
LED_OFF
);
break
;
case
NaviIconType_RIGHT_BACK
:
case
EC_NAVI_ICON_RIGHT_BACK
:
case
EC_NAVI_ICON_ROTARY_SHARP_RIGHT
:
IC2_SEG164
=
IC_SEG_OFF
;
IC2_SEG165
=
IC_SEG_OFF
;
IC2_SEG169
=
IC_SEG_OFF
;
...
...
@@ -492,7 +502,9 @@ void SEG_SET_Navigation_STS(uint8_t m_Flag, uint8_t m_Code, uint32_t m_Mileage)
LED_Driver_Channel_Set
(
LampChannel_0
,
LampCh0_15_ARRIVED_TOLLGATE
,
LED_OFF
);
LED_Driver_Channel_Set
(
LampChannel_0
,
LampCh0_16_ARRIVED_TUNNEL
,
LED_OFF
);
break
;
case
NaviIconType_STRAIGHT
:
case
EC_NAVI_ICON_STRAIGHT
:
case
EC_NAVI_ICON_ENTRY_RING_CONTINUE
:
case
EC_NAVI_ICON_ENTRY_LEFT_RING_CONTINUE
:
IC2_SEG164
=
IC_SEG_ON
;
IC2_SEG165
=
IC_SEG_ON
;
IC2_SEG169
=
IC_SEG_ON
;
...
...
@@ -513,7 +525,73 @@ void SEG_SET_Navigation_STS(uint8_t m_Flag, uint8_t m_Code, uint32_t m_Mileage)
LED_Driver_Channel_Set
(
LampChannel_0
,
LampCh0_15_ARRIVED_TOLLGATE
,
LED_OFF
);
LED_Driver_Channel_Set
(
LampChannel_0
,
LampCh0_16_ARRIVED_TUNNEL
,
LED_OFF
);
break
;
case
NaviIconType_ARRIVED_SERVICE_AREA
:
case
EC_NAVI_ICON_LEFT_TURN_AROUND
:
case
EC_NAVI_ICON_ENTRY_RING_UTURN
:
IC2_SEG164
=
IC_SEG_OFF
;
IC2_SEG165
=
IC_SEG_OFF
;
IC2_SEG169
=
IC_SEG_OFF
;
IC2_SEG170
=
IC_SEG_ON
;
IC2_SEG166
=
IC_SEG_OFF
;
IC2_SEG167
=
IC_SEG_OFF
;
IC2_SEG168
=
IC_SEG_ON
;
IC2_SEG163
=
IC_SEG_OFF
;
IC2_SEG171
=
IC_SEG_OFF
;
IC2_SEG172
=
IC_SEG_OFF
;
IC2_SEG162
=
IC_SEG_OFF
;
IC2_SEG161
=
IC_SEG_OFF
;
IC2_SEG160
=
IC_SEG_OFF
;
LED_Driver_Channel_Set
(
LampChannel_0
,
LampCh0_10_Navigator1
,
LED_ON
);
LED_Driver_Channel_Set
(
LampChannel_0
,
LampCh0_19_Navigator2
,
LED_ON
);
LED_Driver_Channel_Set
(
LampChannel_0
,
LampCh0_14_ARRIVED_SERVICE_AREA
,
LED_OFF
);
LED_Driver_Channel_Set
(
LampChannel_0
,
LampCh0_15_ARRIVED_TOLLGATE
,
LED_OFF
);
LED_Driver_Channel_Set
(
LampChannel_0
,
LampCh0_16_ARRIVED_TUNNEL
,
LED_OFF
);
break
;
case
EC_NAVI_ICON_UTURN_RIGHT
:
case
EC_NAVI_ICON_ENTRY_LEFT_RING_UTURN
:
IC2_SEG164
=
IC_SEG_OFF
;
IC2_SEG165
=
IC_SEG_OFF
;
IC2_SEG169
=
IC_SEG_OFF
;
IC2_SEG170
=
IC_SEG_ON
;
IC2_SEG166
=
IC_SEG_OFF
;
IC2_SEG167
=
IC_SEG_OFF
;
IC2_SEG168
=
IC_SEG_OFF
;
IC2_SEG163
=
IC_SEG_OFF
;
IC2_SEG171
=
IC_SEG_OFF
;
IC2_SEG172
=
IC_SEG_ON
;
IC2_SEG162
=
IC_SEG_OFF
;
IC2_SEG161
=
IC_SEG_OFF
;
IC2_SEG160
=
IC_SEG_OFF
;
LED_Driver_Channel_Set
(
LampChannel_0
,
LampCh0_10_Navigator1
,
LED_ON
);
LED_Driver_Channel_Set
(
LampChannel_0
,
LampCh0_19_Navigator2
,
LED_ON
);
LED_Driver_Channel_Set
(
LampChannel_0
,
LampCh0_14_ARRIVED_SERVICE_AREA
,
LED_OFF
);
LED_Driver_Channel_Set
(
LampChannel_0
,
LampCh0_15_ARRIVED_TOLLGATE
,
LED_OFF
);
LED_Driver_Channel_Set
(
LampChannel_0
,
LampCh0_16_ARRIVED_TUNNEL
,
LED_OFF
);
break
;
case
EC_NAVI_ICON_SPECIAL_CONTINUE
:
IC2_SEG164
=
IC_SEG_ON
;
IC2_SEG165
=
IC_SEG_ON
;
IC2_SEG169
=
IC_SEG_ON
;
IC2_SEG170
=
IC_SEG_OFF
;
IC2_SEG166
=
IC_SEG_OFF
;
IC2_SEG167
=
IC_SEG_OFF
;
IC2_SEG168
=
IC_SEG_OFF
;
IC2_SEG163
=
IC_SEG_OFF
;
IC2_SEG171
=
IC_SEG_OFF
;
IC2_SEG172
=
IC_SEG_OFF
;
IC2_SEG162
=
IC_SEG_OFF
;
IC2_SEG161
=
IC_SEG_OFF
;
IC2_SEG160
=
IC_SEG_OFF
;
LED_Driver_Channel_Set
(
LampChannel_0
,
LampCh0_10_Navigator1
,
LED_ON
);
LED_Driver_Channel_Set
(
LampChannel_0
,
LampCh0_19_Navigator2
,
LED_ON
);
LED_Driver_Channel_Set
(
LampChannel_0
,
LampCh0_14_ARRIVED_SERVICE_AREA
,
LED_OFF
);
LED_Driver_Channel_Set
(
LampChannel_0
,
LampCh0_15_ARRIVED_TOLLGATE
,
LED_OFF
);
LED_Driver_Channel_Set
(
LampChannel_0
,
LampCh0_16_ARRIVED_TUNNEL
,
LED_OFF
);
break
;
case
EC_NAVI_ICON_ARRIVED_SERVICE_AREA
:
IC2_SEG164
=
IC_SEG_OFF
;
IC2_SEG165
=
IC_SEG_OFF
;
IC2_SEG169
=
IC_SEG_OFF
;
...
...
@@ -534,7 +612,7 @@ void SEG_SET_Navigation_STS(uint8_t m_Flag, uint8_t m_Code, uint32_t m_Mileage)
LED_Driver_Channel_Set
(
LampChannel_0
,
LampCh0_15_ARRIVED_TOLLGATE
,
LED_OFF
);
LED_Driver_Channel_Set
(
LampChannel_0
,
LampCh0_16_ARRIVED_TUNNEL
,
LED_OFF
);
break
;
case
NaviIconType
_ARRIVED_TOLLGATE
:
case
EC_NAVI_ICON
_ARRIVED_TOLLGATE
:
IC2_SEG164
=
IC_SEG_OFF
;
IC2_SEG165
=
IC_SEG_OFF
;
IC2_SEG169
=
IC_SEG_OFF
;
...
...
@@ -555,7 +633,7 @@ void SEG_SET_Navigation_STS(uint8_t m_Flag, uint8_t m_Code, uint32_t m_Mileage)
LED_Driver_Channel_Set
(
LampChannel_0
,
LampCh0_15_ARRIVED_TOLLGATE
,
LED_ON
);
LED_Driver_Channel_Set
(
LampChannel_0
,
LampCh0_16_ARRIVED_TUNNEL
,
LED_OFF
);
break
;
case
NaviIconType
_ARRIVED_TUNNEL
:
case
EC_NAVI_ICON
_ARRIVED_TUNNEL
:
IC2_SEG164
=
IC_SEG_OFF
;
IC2_SEG165
=
IC_SEG_OFF
;
IC2_SEG169
=
IC_SEG_OFF
;
...
...
@@ -636,7 +714,14 @@ void SEG_SET_Navigation_STS(uint8_t m_Flag, uint8_t m_Code, uint32_t m_Mileage)
{
Num
=
m_Mileage
/
100000
;
}
if
((
ClearODO_Flag
==
1
)
||
(
Common_GetIgnOnTime
()
<
3000
))
{
m8
=
SEG_DISPLAY_NUMBER0
[
Num
];
}
else
{
m8
=
SEG_UNDISPLAY_NUMBER0
[
Num
];
}
if
(
Bit_Is_Set
(
m8
,
0
))
{
...
...
@@ -694,6 +779,7 @@ void SEG_SET_Navigation_STS(uint8_t m_Flag, uint8_t m_Code, uint32_t m_Mileage)
{
IC1_SEG014
=
IC_SEG_OFF
;
}
if
(
m_Mileage
<
1000
)
{
Num
=
m_Mileage
/
100
;
...
...
@@ -701,7 +787,7 @@ void SEG_SET_Navigation_STS(uint8_t m_Flag, uint8_t m_Code, uint32_t m_Mileage)
}
else
{
Num
=
(
m_Mileage
/
100
)
%
1000
/
100
;
Num
=
(
(
m_Mileage
+
50
)
/
100
)
%
1000
/
100
;
if
(
m_Mileage
>=
10000
)
{
m8
=
SEG_DISPLAY_NUMBER0
[
Num
];
...
...
@@ -710,8 +796,12 @@ void SEG_SET_Navigation_STS(uint8_t m_Flag, uint8_t m_Code, uint32_t m_Mileage)
{
m8
=
SEG_UNDISPLAY_NUMBER0
[
Num
];
}
}
if
((
ClearODO_Flag
==
1
)
||
(
Common_GetIgnOnTime
()
<
3000
))
{
m8
=
SEG_DISPLAY_NUMBER0
[
Num
];
}
if
(
Bit_Is_Set
(
m8
,
0
))
{
...
...
@@ -784,10 +874,13 @@ void SEG_SET_Navigation_STS(uint8_t m_Flag, uint8_t m_Code, uint32_t m_Mileage)
}
else
{
Num
=
((
m_Mileage
/
100
)
/
10
)
%
10
;
Num
=
(((
m_Mileage
+
50
)
/
100
)
/
10
)
%
10
;
m8
=
SEG_DISPLAY_NUMBER0
[
Num
];
}
if
((
ClearODO_Flag
==
1
)
||
(
Common_GetIgnOnTime
()
<
3000
))
{
m8
=
SEG_DISPLAY_NUMBER0
[
Num
];
}
if
(
Bit_Is_Set
(
m8
,
0
))
{
IC1_SEG133
=
IC_SEG_ON
;
...
...
@@ -853,11 +946,14 @@ void SEG_SET_Navigation_STS(uint8_t m_Flag, uint8_t m_Code, uint32_t m_Mileage)
}
else
{
Num
=
(
m_Mileage
/
100
)
%
10
;
Num
=
(
(
m_Mileage
+
50
)
/
100
)
%
10
;
m8
=
SEG_DISPLAY_NUMBER0
[
Num
];
}
if
((
ClearODO_Flag
==
1
)
||
(
Common_GetIgnOnTime
()
<
3000
))
{
m8
=
SEG_DISPLAY_NUMBER0
[
Num
];
}
if
(
Bit_Is_Set
(
m8
,
0
))
{
IC1_SEG132
=
IC_SEG_ON
;
...
...
@@ -2005,7 +2101,7 @@ void SEG_SET_Voltage_NUM(uint8_t m_Flag, uint16_t m_NUM)
* @param[in] m_valid1 前轮有效标志 -0 无效,显示--
* @param[in] m_valid2 后轮有效标志 -0 无效,显示--
*/
void
SEG_SET_TPMS_
NUM
(
uint8_t
m_Flag
,
uint16_t
m_NUM1
,
uint16_t
m_NUM2
,
uint8_t
m_Unit
,
uint8_t
m_valid1
,
uint8_t
m_valid2
)
void
SEG_SET_TPMS_
DISPLAY
(
uint8_t
m_Flag
,
uint16_t
m_NUM1
,
uint16_t
m_NUM2
,
uint8_t
m_Unit
,
uint8_t
m_valid1
,
uint8_t
m_valid2
)
{
uint16_t
Num1
=
0
;
uint16_t
Num2
=
0
;
...
...
@@ -2052,14 +2148,47 @@ void SEG_SET_TPMS_NUM(uint8_t m_Flag, uint16_t m_NUM1, uint16_t m_NUM2, uint8_t
}
else
{
if
(
m_Unit
==
0
)
{
IC2_SEG109
=
IC_SEG_OFF
;
IC2_SEG110
=
IC_SEG_ON
;
IC2_SEG118
=
IC_SEG_ON
;
if
((
Get_Current_PageType
()
==
Page_Front_Tpms
)
||
(
Get_Front_FirstLearn_Flag
()
==
1
)
||
(
Get_Front_FirstLearn_Flag
()
==
3
))
{
if
(
FLASH_SYNC_1Hz
)
{
IC2_SEG138
=
IC_SEG_ON
;
}
else
{
IC2_SEG138
=
IC_SEG_OFF
;
}
}
else
{
IC2_SEG138
=
IC_SEG_ON
;
}
if
((
Get_Current_PageType
()
==
Page_Rear_Tpms
)
||
(
Get_Rear_FirstLearn_Flag
()
==
1
)
||
(
Get_Rear_FirstLearn_Flag
()
==
3
))
{
if
(
FLASH_SYNC_1Hz
)
{
IC2_SEG118
=
IC_SEG_ON
;
}
else
{
IC2_SEG118
=
IC_SEG_OFF
;
}
}
else
{
IC2_SEG118
=
IC_SEG_ON
;
}
}
else
{
IC2_SEG109
=
IC_SEG_ON
;
...
...
@@ -2067,8 +2196,12 @@ void SEG_SET_TPMS_NUM(uint8_t m_Flag, uint16_t m_NUM1, uint16_t m_NUM2, uint8_t
IC2_SEG118
=
IC_SEG_OFF
;
IC2_SEG138
=
IC_SEG_OFF
;
}
}
SEG_SET_FRONT_TPMS_NUM
(
Get_Front_FirstLearn_Flag
(),
m_NUM1
,
m_valid1
);
SEG_SET_Rear_TPMS_NUM
(
Get_Rear_FirstLearn_Flag
(),
m_NUM2
,
m_valid2
);
}
else
...
...
@@ -2077,11 +2210,149 @@ void SEG_SET_TPMS_NUM(uint8_t m_Flag, uint16_t m_NUM1, uint16_t m_NUM2, uint8_t
IC2_SEG110
=
IC_SEG_ON
;
IC2_SEG118
=
IC_SEG_ON
;
IC2_SEG138
=
IC_SEG_ON
;
SEG_SET_FRONT_TPMS_NUM
(
2
,
m_NUM1
,
m_valid1
);
SEG_SET_Rear_TPMS_NUM
(
2
,
m_NUM2
,
m_valid2
);
}
}
else
{
IC2_SEG120
=
IC_SEG_OFF
;
IC2_SEG113
=
IC_SEG_OFF
;
IC2_SEG123
=
IC_SEG_OFF
;
IC2_SEG121
=
IC_SEG_OFF
;
IC2_SEG119
=
IC_SEG_OFF
;
IC2_SEG126
=
IC_SEG_OFF
;
IC2_SEG125
=
IC_SEG_OFF
;
IC2_SEG124
=
IC_SEG_OFF
;
IC2_SEG115
=
IC_SEG_OFF
;
IC2_SEG114
=
IC_SEG_OFF
;
IC2_SEG112
=
IC_SEG_OFF
;
IC2_SEG111
=
IC_SEG_OFF
;
IC2_SEG117
=
IC_SEG_OFF
;
IC2_SEG116
=
IC_SEG_OFF
;
IC2_SEG140
=
IC_SEG_OFF
;
IC2_SEG133
=
IC_SEG_OFF
;
IC2_SEG143
=
IC_SEG_OFF
;
IC2_SEG141
=
IC_SEG_OFF
;
IC2_SEG139
=
IC_SEG_OFF
;
IC2_SEG146
=
IC_SEG_OFF
;
IC2_SEG145
=
IC_SEG_OFF
;
IC2_SEG144
=
IC_SEG_OFF
;
IC2_SEG135
=
IC_SEG_OFF
;
IC2_SEG134
=
IC_SEG_OFF
;
IC2_SEG132
=
IC_SEG_OFF
;
IC2_SEG131
=
IC_SEG_OFF
;
IC2_SEG137
=
IC_SEG_OFF
;
IC2_SEG136
=
IC_SEG_OFF
;
IC2_SEG109
=
IC_SEG_OFF
;
IC2_SEG110
=
IC_SEG_OFF
;
IC2_SEG118
=
IC_SEG_OFF
;
IC2_SEG122
=
IC_SEG_OFF
;
IC2_SEG138
=
IC_SEG_OFF
;
IC2_SEG142
=
IC_SEG_OFF
;
}
}
void
SEG_SET_FRONT_TPMS_NUM
(
uint8_t
learnflag
,
uint16_t
m_NUM1
,
uint8_t
m_valid1
)
{
uint16_t
Num1
=
0
;
uint16_t
Num2
=
0
;
uint8_t
m8
;
if
(
learnflag
==
0
)
{
if
(
Get_Current_PageType
()
==
Page_Front_Tpms
)
{
if
(
FLASH_SYNC_1Hz
)
{
IC2_SEG140
=
IC_SEG_ON
;
IC2_SEG133
=
IC_SEG_ON
;
}
else
{
IC2_SEG140
=
IC_SEG_OFF
;
IC2_SEG133
=
IC_SEG_OFF
;
}
IC2_SEG143
=
IC_SEG_OFF
;
IC2_SEG141
=
IC_SEG_OFF
;
IC2_SEG139
=
IC_SEG_OFF
;
IC2_SEG146
=
IC_SEG_OFF
;
IC2_SEG145
=
IC_SEG_OFF
;
IC2_SEG144
=
IC_SEG_OFF
;
IC2_SEG135
=
IC_SEG_OFF
;
IC2_SEG134
=
IC_SEG_OFF
;
IC2_SEG132
=
IC_SEG_OFF
;
IC2_SEG131
=
IC_SEG_OFF
;
IC2_SEG137
=
IC_SEG_OFF
;
IC2_SEG136
=
IC_SEG_OFF
;
}
else
{
IC2_SEG140
=
IC_SEG_ON
;
IC2_SEG133
=
IC_SEG_ON
;
IC2_SEG143
=
IC_SEG_OFF
;
IC2_SEG141
=
IC_SEG_OFF
;
IC2_SEG139
=
IC_SEG_OFF
;
IC2_SEG146
=
IC_SEG_OFF
;
IC2_SEG145
=
IC_SEG_OFF
;
IC2_SEG144
=
IC_SEG_OFF
;
IC2_SEG135
=
IC_SEG_OFF
;
IC2_SEG134
=
IC_SEG_OFF
;
IC2_SEG132
=
IC_SEG_OFF
;
IC2_SEG131
=
IC_SEG_OFF
;
IC2_SEG137
=
IC_SEG_OFF
;
IC2_SEG136
=
IC_SEG_OFF
;
}
}
else
if
(
learnflag
==
1
)
{
if
(
FLASH_SYNC_1Hz
)
{
IC2_SEG140
=
IC_SEG_ON
;
IC2_SEG133
=
IC_SEG_ON
;
}
else
{
IC2_SEG140
=
IC_SEG_OFF
;
IC2_SEG133
=
IC_SEG_OFF
;
}
IC2_SEG143
=
IC_SEG_OFF
;
IC2_SEG141
=
IC_SEG_OFF
;
IC2_SEG139
=
IC_SEG_OFF
;
IC2_SEG146
=
IC_SEG_OFF
;
IC2_SEG145
=
IC_SEG_OFF
;
IC2_SEG144
=
IC_SEG_OFF
;
IC2_SEG135
=
IC_SEG_OFF
;
IC2_SEG134
=
IC_SEG_OFF
;
IC2_SEG132
=
IC_SEG_OFF
;
IC2_SEG131
=
IC_SEG_OFF
;
IC2_SEG137
=
IC_SEG_OFF
;
IC2_SEG136
=
IC_SEG_OFF
;
}
else
if
(
learnflag
==
2
)
{
if
(
Get_Current_PageType
()
==
Page_Front_Tpms
)
{
if
(
FLASH_SYNC_1Hz
)
{
if
(
m_valid1
==
1
)
{
Num1
=
m_NUM1
/
10u
;
if
(
Get_Dis_Tpms_Unit
()
==
0
)
{
m8
=
SEG_DISPLAY_NUMBER0
[
Num1
];
}
else
{
m8
=
SEG_UNDISPLAY_NUMBER0
[
Num1
];
}
if
(
Bit_Is_Set
(
m8
,
0
))
{
IC2_SEG143
=
IC_SEG_ON
;
...
...
@@ -2217,20 +2488,330 @@ void SEG_SET_TPMS_NUM(uint8_t m_Flag, uint16_t m_NUM1, uint16_t m_NUM2, uint8_t
IC2_SEG137
=
IC_SEG_OFF
;
IC2_SEG136
=
IC_SEG_OFF
;
}
if
(
m_valid2
==
1
)
{
Num2
=
m_NUM2
/
10u
;
m8
=
SEG_DISPLAY_NUMBER0
[
Num2
];
if
(
Bit_Is_Set
(
m8
,
0
))
{
IC2_SEG123
=
IC_SEG_ON
;
}
else
{
IC2_SEG123
=
IC_SEG_OFF
;
}
if
(
Bit_Is_Set
(
m8
,
1
))
{
IC2_SEG140
=
IC_SEG_OFF
;
IC2_SEG133
=
IC_SEG_OFF
;
IC2_SEG143
=
IC_SEG_OFF
;
IC2_SEG141
=
IC_SEG_OFF
;
IC2_SEG139
=
IC_SEG_OFF
;
IC2_SEG146
=
IC_SEG_OFF
;
IC2_SEG145
=
IC_SEG_OFF
;
IC2_SEG144
=
IC_SEG_OFF
;
IC2_SEG135
=
IC_SEG_OFF
;
IC2_SEG134
=
IC_SEG_OFF
;
IC2_SEG132
=
IC_SEG_OFF
;
IC2_SEG131
=
IC_SEG_OFF
;
IC2_SEG137
=
IC_SEG_OFF
;
IC2_SEG136
=
IC_SEG_OFF
;
}
}
else
{
if
(
m_valid1
==
1
)
{
Num1
=
m_NUM1
/
10u
;
if
(
Get_Dis_Tpms_Unit
()
==
0
)
{
m8
=
SEG_DISPLAY_NUMBER0
[
Num1
];
}
else
{
m8
=
SEG_UNDISPLAY_NUMBER0
[
Num1
];
}
if
(
Bit_Is_Set
(
m8
,
0
))
{
IC2_SEG143
=
IC_SEG_ON
;
}
else
{
IC2_SEG143
=
IC_SEG_OFF
;
}
if
(
Bit_Is_Set
(
m8
,
1
))
{
IC2_SEG141
=
IC_SEG_ON
;
}
else
{
IC2_SEG141
=
IC_SEG_OFF
;
}
if
(
Bit_Is_Set
(
m8
,
2
))
{
IC2_SEG139
=
IC_SEG_ON
;
}
else
{
IC2_SEG139
=
IC_SEG_OFF
;
}
if
(
Bit_Is_Set
(
m8
,
3
))
{
IC2_SEG146
=
IC_SEG_ON
;
}
else
{
IC2_SEG146
=
IC_SEG_OFF
;
}
if
(
Bit_Is_Set
(
m8
,
4
))
{
IC2_SEG145
=
IC_SEG_ON
;
}
else
{
IC2_SEG145
=
IC_SEG_OFF
;
}
if
(
Bit_Is_Set
(
m8
,
5
))
{
IC2_SEG144
=
IC_SEG_ON
;
}
else
{
IC2_SEG144
=
IC_SEG_OFF
;
}
if
(
Bit_Is_Set
(
m8
,
6
))
{
IC2_SEG140
=
IC_SEG_ON
;
}
else
{
IC2_SEG140
=
IC_SEG_OFF
;
}
Num1
=
m_NUM1
%
10u
;
m8
=
SEG_DISPLAY_NUMBER0
[
Num1
];
if
(
Bit_Is_Set
(
m8
,
0
))
{
IC2_SEG135
=
IC_SEG_ON
;
}
else
{
IC2_SEG135
=
IC_SEG_OFF
;
}
if
(
Bit_Is_Set
(
m8
,
1
))
{
IC2_SEG134
=
IC_SEG_ON
;
}
else
{
IC2_SEG134
=
IC_SEG_OFF
;
}
if
(
Bit_Is_Set
(
m8
,
2
))
{
IC2_SEG132
=
IC_SEG_ON
;
}
else
{
IC2_SEG132
=
IC_SEG_OFF
;
}
if
(
Bit_Is_Set
(
m8
,
3
))
{
IC2_SEG131
=
IC_SEG_ON
;
}
else
{
IC2_SEG131
=
IC_SEG_OFF
;
}
if
(
Bit_Is_Set
(
m8
,
4
))
{
IC2_SEG137
=
IC_SEG_ON
;
}
else
{
IC2_SEG137
=
IC_SEG_OFF
;
}
if
(
Bit_Is_Set
(
m8
,
5
))
{
IC2_SEG136
=
IC_SEG_ON
;
}
else
{
IC2_SEG136
=
IC_SEG_OFF
;
}
if
(
Bit_Is_Set
(
m8
,
6
))
{
IC2_SEG133
=
IC_SEG_ON
;
}
else
{
IC2_SEG133
=
IC_SEG_OFF
;
}
}
else
{
IC2_SEG140
=
IC_SEG_ON
;
IC2_SEG133
=
IC_SEG_ON
;
IC2_SEG143
=
IC_SEG_OFF
;
IC2_SEG141
=
IC_SEG_OFF
;
IC2_SEG139
=
IC_SEG_OFF
;
IC2_SEG146
=
IC_SEG_OFF
;
IC2_SEG145
=
IC_SEG_OFF
;
IC2_SEG144
=
IC_SEG_OFF
;
IC2_SEG135
=
IC_SEG_OFF
;
IC2_SEG134
=
IC_SEG_OFF
;
IC2_SEG132
=
IC_SEG_OFF
;
IC2_SEG131
=
IC_SEG_OFF
;
IC2_SEG137
=
IC_SEG_OFF
;
IC2_SEG136
=
IC_SEG_OFF
;
}
}
}
else
if
(
learnflag
==
3
)
{
if
(
FLASH_SYNC_1Hz
)
{
IC2_SEG140
=
IC_SEG_ON
;
IC2_SEG133
=
IC_SEG_ON
;
IC2_SEG143
=
IC_SEG_ON
;
IC2_SEG141
=
IC_SEG_ON
;
IC2_SEG139
=
IC_SEG_ON
;
IC2_SEG146
=
IC_SEG_ON
;
IC2_SEG145
=
IC_SEG_OFF
;
IC2_SEG144
=
IC_SEG_ON
;
IC2_SEG135
=
IC_SEG_ON
;
IC2_SEG134
=
IC_SEG_ON
;
IC2_SEG132
=
IC_SEG_ON
;
IC2_SEG131
=
IC_SEG_ON
;
IC2_SEG137
=
IC_SEG_OFF
;
IC2_SEG136
=
IC_SEG_ON
;
}
else
{
IC2_SEG140
=
IC_SEG_OFF
;
IC2_SEG133
=
IC_SEG_OFF
;
IC2_SEG143
=
IC_SEG_OFF
;
IC2_SEG141
=
IC_SEG_OFF
;
IC2_SEG139
=
IC_SEG_OFF
;
IC2_SEG146
=
IC_SEG_OFF
;
IC2_SEG145
=
IC_SEG_OFF
;
IC2_SEG144
=
IC_SEG_OFF
;
IC2_SEG135
=
IC_SEG_OFF
;
IC2_SEG134
=
IC_SEG_OFF
;
IC2_SEG132
=
IC_SEG_OFF
;
IC2_SEG131
=
IC_SEG_OFF
;
IC2_SEG137
=
IC_SEG_OFF
;
IC2_SEG136
=
IC_SEG_OFF
;
}
}
else
{
;
}
}
void
SEG_SET_Rear_TPMS_NUM
(
uint8_t
learnflag
,
uint16_t
m_NUM2
,
uint8_t
m_valid2
)
{
uint16_t
Num1
=
0
;
uint16_t
Num2
=
0
;
uint8_t
m8
;
if
(
learnflag
==
0
)
{
if
(
Get_Current_PageType
()
==
Page_Rear_Tpms
)
{
if
(
FLASH_SYNC_1Hz
)
{
IC2_SEG120
=
IC_SEG_ON
;
IC2_SEG113
=
IC_SEG_ON
;
}
else
{
IC2_SEG120
=
IC_SEG_OFF
;
IC2_SEG113
=
IC_SEG_OFF
;
}
IC2_SEG123
=
IC_SEG_OFF
;
IC2_SEG121
=
IC_SEG_OFF
;
IC2_SEG119
=
IC_SEG_OFF
;
IC2_SEG126
=
IC_SEG_OFF
;
IC2_SEG125
=
IC_SEG_OFF
;
IC2_SEG124
=
IC_SEG_OFF
;
IC2_SEG115
=
IC_SEG_OFF
;
IC2_SEG114
=
IC_SEG_OFF
;
IC2_SEG112
=
IC_SEG_OFF
;
IC2_SEG111
=
IC_SEG_OFF
;
IC2_SEG117
=
IC_SEG_OFF
;
IC2_SEG116
=
IC_SEG_OFF
;
}
else
{
IC2_SEG120
=
IC_SEG_ON
;
IC2_SEG113
=
IC_SEG_ON
;
IC2_SEG123
=
IC_SEG_OFF
;
IC2_SEG121
=
IC_SEG_OFF
;
IC2_SEG119
=
IC_SEG_OFF
;
IC2_SEG126
=
IC_SEG_OFF
;
IC2_SEG125
=
IC_SEG_OFF
;
IC2_SEG124
=
IC_SEG_OFF
;
IC2_SEG115
=
IC_SEG_OFF
;
IC2_SEG114
=
IC_SEG_OFF
;
IC2_SEG112
=
IC_SEG_OFF
;
IC2_SEG111
=
IC_SEG_OFF
;
IC2_SEG117
=
IC_SEG_OFF
;
IC2_SEG116
=
IC_SEG_OFF
;
}
}
else
if
(
learnflag
==
1
)
{
if
(
FLASH_SYNC_1Hz
)
{
IC2_SEG120
=
IC_SEG_ON
;
IC2_SEG113
=
IC_SEG_ON
;
}
else
{
IC2_SEG120
=
IC_SEG_OFF
;
IC2_SEG113
=
IC_SEG_OFF
;
}
IC2_SEG123
=
IC_SEG_OFF
;
IC2_SEG121
=
IC_SEG_OFF
;
IC2_SEG119
=
IC_SEG_OFF
;
IC2_SEG126
=
IC_SEG_OFF
;
IC2_SEG125
=
IC_SEG_OFF
;
IC2_SEG124
=
IC_SEG_OFF
;
IC2_SEG115
=
IC_SEG_OFF
;
IC2_SEG114
=
IC_SEG_OFF
;
IC2_SEG112
=
IC_SEG_OFF
;
IC2_SEG111
=
IC_SEG_OFF
;
IC2_SEG117
=
IC_SEG_OFF
;
IC2_SEG116
=
IC_SEG_OFF
;
}
else
if
(
learnflag
==
2
)
{
if
(
Get_Current_PageType
()
==
Page_Rear_Tpms
)
{
if
(
FLASH_SYNC_1Hz
)
{
if
(
m_valid2
==
1
)
{
Num2
=
m_NUM2
/
10u
;
if
(
Get_Dis_Tpms_Unit
()
==
0
)
{
m8
=
SEG_DISPLAY_NUMBER0
[
Num2
];
}
else
{
m8
=
SEG_UNDISPLAY_NUMBER0
[
Num2
];
}
if
(
Bit_Is_Set
(
m8
,
0
))
{
IC2_SEG123
=
IC_SEG_ON
;
}
else
{
IC2_SEG123
=
IC_SEG_OFF
;
}
if
(
Bit_Is_Set
(
m8
,
1
))
{
IC2_SEG121
=
IC_SEG_ON
;
}
else
...
...
@@ -2361,44 +2942,220 @@ void SEG_SET_TPMS_NUM(uint8_t m_Flag, uint16_t m_NUM1, uint16_t m_NUM2, uint8_t
{
IC2_SEG120
=
IC_SEG_OFF
;
IC2_SEG113
=
IC_SEG_OFF
;
IC2_SEG123
=
IC_SEG_OFF
;
IC2_SEG121
=
IC_SEG_OFF
;
IC2_SEG119
=
IC_SEG_OFF
;
IC2_SEG126
=
IC_SEG_OFF
;
IC2_SEG125
=
IC_SEG_OFF
;
IC2_SEG124
=
IC_SEG_OFF
;
IC2_SEG115
=
IC_SEG_OFF
;
IC2_SEG114
=
IC_SEG_OFF
;
IC2_SEG112
=
IC_SEG_OFF
;
IC2_SEG111
=
IC_SEG_OFF
;
IC2_SEG117
=
IC_SEG_OFF
;
IC2_SEG116
=
IC_SEG_OFF
;
IC2_SEG140
=
IC_SEG_OFF
;
IC2_SEG133
=
IC_SEG_OFF
;
IC2_SEG143
=
IC_SEG_OFF
;
IC2_SEG141
=
IC_SEG_OFF
;
IC2_SEG139
=
IC_SEG_OFF
;
IC2_SEG146
=
IC_SEG_OFF
;
IC2_SEG145
=
IC_SEG_OFF
;
IC2_SEG144
=
IC_SEG_OFF
;
IC2_SEG135
=
IC_SEG_OFF
;
IC2_SEG134
=
IC_SEG_OFF
;
IC2_SEG132
=
IC_SEG_OFF
;
IC2_SEG131
=
IC_SEG_OFF
;
IC2_SEG137
=
IC_SEG_OFF
;
IC2_SEG136
=
IC_SEG_OFF
;
}
}
else
{
if
(
m_valid2
==
1
)
{
Num2
=
m_NUM2
/
10u
;
if
(
Get_Dis_Tpms_Unit
()
==
0
)
{
m8
=
SEG_DISPLAY_NUMBER0
[
Num2
];
}
else
{
m8
=
SEG_UNDISPLAY_NUMBER0
[
Num2
];
}
IC2_SEG109
=
IC_SEG_OFF
;
IC2_SEG110
=
IC_SEG_OFF
;
IC2_SEG118
=
IC_SEG_OFF
;
IC2_SEG122
=
IC_SEG_OFF
;
IC2_SEG138
=
IC_SEG_OFF
;
IC2_SEG142
=
IC_SEG_OFF
;
if
(
Bit_Is_Set
(
m8
,
0
))
{
IC2_SEG123
=
IC_SEG_ON
;
}
else
{
IC2_SEG123
=
IC_SEG_OFF
;
}
if
(
Bit_Is_Set
(
m8
,
1
))
{
IC2_SEG121
=
IC_SEG_ON
;
}
else
{
IC2_SEG121
=
IC_SEG_OFF
;
}
if
(
Bit_Is_Set
(
m8
,
2
))
{
IC2_SEG119
=
IC_SEG_ON
;
}
else
{
IC2_SEG119
=
IC_SEG_OFF
;
}
if
(
Bit_Is_Set
(
m8
,
3
))
{
IC2_SEG126
=
IC_SEG_ON
;
}
else
{
IC2_SEG126
=
IC_SEG_OFF
;
}
if
(
Bit_Is_Set
(
m8
,
4
))
{
IC2_SEG125
=
IC_SEG_ON
;
}
else
{
IC2_SEG125
=
IC_SEG_OFF
;
}
if
(
Bit_Is_Set
(
m8
,
5
))
{
IC2_SEG124
=
IC_SEG_ON
;
}
else
{
IC2_SEG124
=
IC_SEG_OFF
;
}
if
(
Bit_Is_Set
(
m8
,
6
))
{
IC2_SEG120
=
IC_SEG_ON
;
}
else
{
IC2_SEG120
=
IC_SEG_OFF
;
}
Num2
=
m_NUM2
%
10u
;
m8
=
SEG_DISPLAY_NUMBER0
[
Num2
];
if
(
Bit_Is_Set
(
m8
,
0
))
{
IC2_SEG115
=
IC_SEG_ON
;
}
}
else
{
IC2_SEG115
=
IC_SEG_OFF
;
}
if
(
Bit_Is_Set
(
m8
,
1
))
{
IC2_SEG114
=
IC_SEG_ON
;
}
else
{
IC2_SEG114
=
IC_SEG_OFF
;
}
if
(
Bit_Is_Set
(
m8
,
2
))
{
IC2_SEG112
=
IC_SEG_ON
;
}
else
{
IC2_SEG112
=
IC_SEG_OFF
;
}
if
(
Bit_Is_Set
(
m8
,
3
))
{
IC2_SEG111
=
IC_SEG_ON
;
}
else
{
IC2_SEG111
=
IC_SEG_OFF
;
}
if
(
Bit_Is_Set
(
m8
,
4
))
{
IC2_SEG117
=
IC_SEG_ON
;
}
else
{
IC2_SEG117
=
IC_SEG_OFF
;
}
if
(
Bit_Is_Set
(
m8
,
5
))
{
IC2_SEG116
=
IC_SEG_ON
;
}
else
{
IC2_SEG116
=
IC_SEG_OFF
;
}
if
(
Bit_Is_Set
(
m8
,
6
))
{
IC2_SEG113
=
IC_SEG_ON
;
}
else
{
IC2_SEG113
=
IC_SEG_OFF
;
}
}
else
{
IC2_SEG120
=
IC_SEG_ON
;
IC2_SEG113
=
IC_SEG_ON
;
IC2_SEG123
=
IC_SEG_OFF
;
IC2_SEG121
=
IC_SEG_OFF
;
IC2_SEG119
=
IC_SEG_OFF
;
IC2_SEG126
=
IC_SEG_OFF
;
IC2_SEG125
=
IC_SEG_OFF
;
IC2_SEG124
=
IC_SEG_OFF
;
IC2_SEG115
=
IC_SEG_OFF
;
IC2_SEG114
=
IC_SEG_OFF
;
IC2_SEG112
=
IC_SEG_OFF
;
IC2_SEG111
=
IC_SEG_OFF
;
IC2_SEG117
=
IC_SEG_OFF
;
IC2_SEG116
=
IC_SEG_OFF
;
}
}
}
else
if
(
learnflag
==
3
)
{
if
(
FLASH_SYNC_1Hz
)
{
IC2_SEG120
=
IC_SEG_ON
;
IC2_SEG113
=
IC_SEG_ON
;
IC2_SEG123
=
IC_SEG_ON
;
IC2_SEG121
=
IC_SEG_ON
;
IC2_SEG119
=
IC_SEG_ON
;
IC2_SEG126
=
IC_SEG_ON
;
IC2_SEG125
=
IC_SEG_OFF
;
IC2_SEG124
=
IC_SEG_ON
;
IC2_SEG115
=
IC_SEG_ON
;
IC2_SEG114
=
IC_SEG_ON
;
IC2_SEG112
=
IC_SEG_ON
;
IC2_SEG111
=
IC_SEG_ON
;
IC2_SEG117
=
IC_SEG_OFF
;
IC2_SEG116
=
IC_SEG_ON
;
}
else
{
IC2_SEG120
=
IC_SEG_OFF
;
IC2_SEG113
=
IC_SEG_OFF
;
IC2_SEG123
=
IC_SEG_OFF
;
IC2_SEG121
=
IC_SEG_OFF
;
IC2_SEG119
=
IC_SEG_OFF
;
IC2_SEG126
=
IC_SEG_OFF
;
IC2_SEG125
=
IC_SEG_OFF
;
IC2_SEG124
=
IC_SEG_OFF
;
IC2_SEG115
=
IC_SEG_OFF
;
IC2_SEG114
=
IC_SEG_OFF
;
IC2_SEG112
=
IC_SEG_OFF
;
IC2_SEG111
=
IC_SEG_OFF
;
IC2_SEG117
=
IC_SEG_OFF
;
IC2_SEG116
=
IC_SEG_OFF
;
}
}
else
{
;
}
}
/**@brief 总计里程显示函数
* @param[in] m_NUM_ODO 显示ODO数值 0 < m_NUM <= 199999
...
...
@@ -3097,7 +3854,7 @@ void SEG_SET_ODO_TRIP_FAULTCODE_TCS_DIS(uint8_t m_Uint, uint32_t m_NUM_ODO, uint
else
if
(
Get_Current_PageMenu
()
==
Page_DTC
)
{
IC1_SEG076
=
IC_SEG_OFF
;
if
(
CAN_MSG_Status
(
&
CAN_CH0_CanMsgOp
,
CAN_CH0_ID_CAN_0x402_Msg_Count
)
==
CAN_SIG_LOST
)
if
(
CAN_MSG_Status
(
&
CAN_CH0_CanMsgOp
,
CAN_CH0_ID_CAN_0x402_Msg_Count
)
==
CAN_SIG_LOST
)
//|| (Get_FaultCode_Valid() == 0))
{
SEG_SET_DTC_NUM
(
0x0B0B0B0B
);
IC1_SEG071
=
IC_SEG_OFF
;
...
...
@@ -3110,7 +3867,53 @@ void SEG_SET_ODO_TRIP_FAULTCODE_TCS_DIS(uint8_t m_Uint, uint32_t m_NUM_ODO, uint
}
else
{
DTC_DISTimer
++
;
//DTC_DISTimer ++;
//IC1_SEG071 = IC_SEG_ON;
//IC1_SEG070 = IC_SEG_ON;
//IC1_SEG068 = IC_SEG_OFF;
//IC1_SEG075 = IC_SEG_OFF;
//IC1_SEG074 = IC_SEG_ON;
//IC1_SEG073 = IC_SEG_ON;
//IC1_SEG069 = IC_SEG_ON;
//if((FaultCode_Number == 0) && (FaultCode_Data[0] == 0))
//{
// SEG_SET_DTC_NUM(0);
// DTC_DISTimer = 0;
// Current_DTC_CODE = 0;
// Current_DTC_CODE_BACK = 0;
//}
//else
//{
// if(DTC_DISTimer < 100)
// {
// if (DTC_DISCount >= FaultCode_Number)
// {
// DTC_DISCount = FaultCode_Number -1;
// }
// if((FaultCode_Compare(Current_DTC_CODE, &FaultCode_Data[0], FaultCode_Number) == 0) && (FaultCode_Data[DTC_DISCount] != 0))
// {
// Current_DTC_CODE = FaultCode_Data[DTC_DISCount] ;
// DTC_DISTimer = 0;
// }
// Current_DTC_CODE_BACK = Current_DTC_CODE;
// }
// else if (DTC_DISTimer >= 100)
// {
// DTC_DISCount ++ ;
// if (DTC_DISCount >= FaultCode_Number)
// {
// DTC_DISCount = 0;
// }
// Current_DTC_CODE = FaultCode_Data[DTC_DISCount] ;
// DTC_DISTimer = 0;
// if((Current_DTC_CODE == Current_DTC_CODE_BACK) && (DTC_DISCount < (FaultCode_Number - 1)))
// {
// DTC_DISCount ++ ;
// Current_DTC_CODE = FaultCode_Data[DTC_DISCount] ;
// }
// }
// SEG_SET_DTC_NUM(Current_DTC_CODE);
//}
IC1_SEG071
=
IC_SEG_ON
;
IC1_SEG070
=
IC_SEG_ON
;
IC1_SEG068
=
IC_SEG_OFF
;
...
...
@@ -3118,45 +3921,7 @@ void SEG_SET_ODO_TRIP_FAULTCODE_TCS_DIS(uint8_t m_Uint, uint32_t m_NUM_ODO, uint
IC1_SEG074
=
IC_SEG_ON
;
IC1_SEG073
=
IC_SEG_ON
;
IC1_SEG069
=
IC_SEG_ON
;
if
((
FaultCode_Number
==
0
)
&&
(
FaultCode_Data
[
0
]
==
0
))
{
SEG_SET_DTC_NUM
(
0
);
DTC_DISTimer
=
0
;
Current_DTC_CODE
=
0
;
Current_DTC_CODE_BACK
=
0
;
}
else
{
if
(
DTC_DISTimer
<
100
)
{
if
(
DTC_DISCount
>=
FaultCode_Number
)
{
DTC_DISCount
=
FaultCode_Number
-
1
;
}
if
((
FaultCode_Compare
(
Current_DTC_CODE
,
&
FaultCode_Data
[
0
],
FaultCode_Number
)
==
0
)
&&
(
FaultCode_Data
[
DTC_DISCount
]
!=
0
))
{
Current_DTC_CODE
=
FaultCode_Data
[
DTC_DISCount
]
;
DTC_DISTimer
=
0
;
}
Current_DTC_CODE_BACK
=
Current_DTC_CODE
;
}
else
if
(
DTC_DISTimer
>=
100
)
{
DTC_DISCount
++
;
if
(
DTC_DISCount
>=
FaultCode_Number
)
{
DTC_DISCount
=
0
;
}
Current_DTC_CODE
=
FaultCode_Data
[
DTC_DISCount
]
;
DTC_DISTimer
=
0
;
if
((
Current_DTC_CODE
==
Current_DTC_CODE_BACK
)
&&
(
DTC_DISCount
<
(
FaultCode_Number
-
1
)))
{
DTC_DISCount
++
;
Current_DTC_CODE
=
FaultCode_Data
[
DTC_DISCount
]
;
}
}
SEG_SET_DTC_NUM
(
Current_DTC_CODE
);
}
SEG_SET_DTC_NUM
(
Get_Current_FaultCode
());
}
}
else
if
(
Get_Current_PageMenu
()
==
Page_TCS
)
...
...
@@ -3569,7 +4334,7 @@ void Check_SEG_Display(void)
SEG_SET_Clock
(((
a
*
10u
)
+
a
),
((
a
*
10u
)
+
a
),
1u
,
1u
,
1u
);
LED_Driver_Channel_Set
(
LampChannel_0
,
LampCh0_07_Screen_Time
,
LED_ON
);
#if(IC_Current == TY200_080000b_ty)
SEG_SET_TPMS_
NUM
(
1
,
a
*
11
,
a
*
11
,
0
,
1
,
1
);
SEG_SET_TPMS_
DISPLAY
(
1
,
a
*
11
,
a
*
11
,
0
,
1
,
1
);
#endif
SEG_SET_Voltage_NUM
(
1
,
a
*
111
);
SEG_SET_Navigation_STS
(
1
,
3
,
a
*
111100
);
...
...
@@ -3638,7 +4403,7 @@ void Checkself_SEG_Display(void)
LED_Driver_Channel_Set
(
LampChannel_0
,
LampCh0_07_Screen_Time
,
LED_ON
);
#if(IC_Current == TY200_080000b_ty)
TPMS
=
(
Checkself_SEG_step
/
3
)
*
11
;
SEG_SET_TPMS_
NUM
(
1
,
TPMS
,
TPMS
,
0
,
1
,
1
);
SEG_SET_TPMS_
DISPLAY
(
1
,
TPMS
,
TPMS
,
0
,
1
,
1
);
#endif
voltage
=
(
Checkself_SEG_step
/
3
)
*
111
;
SEG_SET_Voltage_NUM
(
1
,
voltage
);
...
...
Firmware/Source/Application/SEG_DISPLAY/SEG_DISPLAY.h
View file @
ea2bb0b7
...
...
@@ -28,16 +28,73 @@ typedef enum
SEG_LED_MAX
,
}
SEG_LED_Idx_t
;
#define NaviIconType_LEFT 0x02
#define NaviIconType_RIGHT 0x03
#define NaviIconType_LEFT_FRONT 0x04
#define NaviIconType_RIGHT_FRONT 0x05
#define NaviIconType_LEFT_BACK 0x06
#define NaviIconType_RIGHT_BACK 0x07
#define NaviIconType_STRAIGHT 0x09
#define NaviIconType_ARRIVED_SERVICE_AREA 0x0D
#define NaviIconType_ARRIVED_TOLLGATE 0x0E
#define NaviIconType_ARRIVED_TUNNEL 0x10
enum
ECNaviIcon
{
EC_NAVI_ICON_NONE
=
0
,
EC_NAVI_ICON_DEFAULT
=
1
,
EC_NAVI_ICON_LEFT
=
2
,
EC_NAVI_ICON_RIGHT
=
3
,
EC_NAVI_ICON_LEFT_FRONT
=
4
,
EC_NAVI_ICON_RIGHT_FRONT
=
5
,
EC_NAVI_ICON_LEFT_BACK
=
6
,
EC_NAVI_ICON_RIGHT_BACK
=
7
,
EC_NAVI_ICON_LEFT_TURN_AROUND
=
8
,
EC_NAVI_ICON_STRAIGHT
=
9
,
EC_NAVI_ICON_ARRIVED_WAYPOINT
=
10
,
EC_NAVI_ICON_ENTER_ROUNDABOUT
=
11
,
EC_NAVI_ICON_OUT_ROUNDABOUT
=
12
,
EC_NAVI_ICON_ARRIVED_SERVICE_AREA
=
13
,
EC_NAVI_ICON_ARRIVED_TOLLGATE
=
14
,
EC_NAVI_ICON_ARRIVED_DESTINATION
=
15
,
EC_NAVI_ICON_ARRIVED_TUNNEL
=
16
,
EC_NAVI_ICON_CROSSWALK
=
17
,
EC_NAVI_ICON_OVERPASS
=
18
,
EC_NAVI_ICON_UNDERPASS
=
19
,
EC_NAVI_ICON_SQUARE
=
20
,
EC_NAVI_ICON_PARK
=
21
,
EC_NAVI_ICON_STAIRCASE
=
22
,
EC_NAVI_ICON_LIFT
=
23
,
EC_NAVI_ICON_CABLEWAY
=
24
,
EC_NAVI_ICON_SKY_CHANNEL
=
25
,
EC_NAVI_ICON_CHANNEL
=
26
,
EC_NAVI_ICON_WALK_ROAD
=
27
,
EC_NAVI_ICON_CRUISE_ROUTE
=
28
,
EC_NAVI_ICON_SIGHTSEEING_BUSLINE
=
29
,
EC_NAVI_ICON_SLIDEWAY
=
30
,
EC_NAVI_ICON_LADDER
=
31
,
EC_NAVI_ICON_MERGE_LEFT
=
51
,
EC_NAVI_ICON_MERGE_RIGHT
=
52
,
EC_NAVI_ICON_SLOW
=
53
,
EC_NAVI_ICON_ENTRY_RING_LEFT
=
54
,
EC_NAVI_ICON_ENTRY_RING_RIGHT
=
55
,
EC_NAVI_ICON_ENTRY_RING_CONTINUE
=
56
,
EC_NAVI_ICON_ENTRY_RING_UTURN
=
57
,
EC_NAVI_ICON_ENTRY_LEFT_RING
=
58
,
EC_NAVI_ICON_LEAVE_LEFT_RING
=
59
,
EC_NAVI_ICON_UTURN_RIGHT
=
60
,
EC_NAVI_ICON_SPECIAL_CONTINUE
=
61
,
EC_NAVI_ICON_ENTRY_LEFT_RING_LEFT
=
62
,
EC_NAVI_ICON_ENTRY_LEFT_RING_RIGHT
=
63
,
EC_NAVI_ICON_ENTRY_LEFT_RING_CONTINUE
=
64
,
EC_NAVI_ICON_ENTRY_LEFT_RING_UTURN
=
65
,
EC_NAVI_ICON_SLOPE
=
66
,
EC_NAVI_ICON_BRIDGE
=
67
,
EC_NAVI_ICON_FERRYBOAT
=
68
,
EC_NAVI_ICON_SUBWAY
=
69
,
EC_NAVI_ICON_ENTER_BUILDING
=
70
,
EC_NAVI_ICON_LEAVE_BUILDING
=
71
,
EC_NAVI_ICON_BY_ELEVATOR
=
72
,
EC_NAVI_ICON_BY_STAIR
=
73
,
EC_NAVI_ICON_ESCALATOR
=
74
,
EC_NAVI_ICON_LOW_TRAFFIC_CROSS
=
75
,
EC_NAVI_ICON_LOW_CROSS
=
76
,
EC_NAVI_ICON_ROTARY_SHARP_LEFT
=
77
,
EC_NAVI_ICON_ROTARY_SHARP_RIGHT
=
78
,
EC_NAVI_ICON_ROTARY_SLIGHT_LEFT
=
79
,
EC_NAVI_ICON_ROTARY_SLIGHT_RIGHT
=
80
,
EC_NAVI_ICON_MAX
};
...
...
@@ -48,11 +105,13 @@ void SEG_SET_EspeedDial(uint8_t m_Flag, uint8_t m_SEG);
void
SEG_SET_CoolantDial
(
uint8_t
m_Flag
,
uint8_t
m_SEG
,
uint16_t
m_Num
,
uint8_t
m_flash
);
void
SEG_SET_VSpeed_NUM
(
uint8_t
m_Flag
,
uint16_t
m_NUM
,
uint8_t
m_Unit
);
void
SEG_SET_Voltage_NUM
(
uint8_t
m_Flag
,
uint16_t
m_NUM
);
void
SEG_SET_TPMS_
NUM
(
uint8_t
m_Flag
,
uint16_t
m_NUM1
,
uint16_t
m_NUM2
,
uint8_t
m_Unit
,
uint8_t
m_valid1
,
uint8_t
m_valid2
);
void
SEG_SET_TPMS_
DISPLAY
(
uint8_t
m_Flag
,
uint16_t
m_NUM1
,
uint16_t
m_NUM2
,
uint8_t
m_Unit
,
uint8_t
m_valid1
,
uint8_t
m_valid2
);
void
SEG_SET_ODO_TRIP_FAULTCODE_TCS_DIS
(
uint8_t
m_Uint
,
uint32_t
m_NUM_ODO
,
uint32_t
m_NUM_TRIP
);
void
SEG_SET_Clock
(
uint8_t
m_hour
,
uint8_t
m_minute
,
uint8_t
m_icon
,
uint8_t
m_Flag1
,
uint8_t
m_Flag2
);
void
SEG_SET_Navigation_STS
(
uint8_t
m_Flag
,
uint8_t
m_Code
,
uint32_t
m_Mileage
);
void
Check_SEG_Display
(
void
);
void
SEG_SET_FRONT_TPMS_NUM
(
uint8_t
learnflag
,
uint16_t
m_NUM1
,
uint8_t
m_valid1
);
void
SEG_SET_Rear_TPMS_NUM
(
uint8_t
learnflag
,
uint16_t
m_NUM2
,
uint8_t
m_valid2
);
extern
uint8_t
check_SEG_step
;
extern
uint8_t
Espeed_check_SEG_step
;
...
...
Firmware/Source/Component/Key/Key_user.c
View file @
ea2bb0b7
...
...
@@ -310,11 +310,11 @@ void Key_Left_Short_Press(void)
}
else
if
(
PageType
==
Page_Front_Tpms
)
{
PageType
=
=
Page_Rear_Tpms
;
PageType
=
Page_Rear_Tpms
;
}
else
if
(
PageType
==
Page_Rear_Tpms
)
{
PageType
=
=
Page_Front_Tpms
;
PageType
=
Page_Front_Tpms
;
}
else
{
...
...
@@ -390,7 +390,7 @@ void Key_Left_Long_Press(void)
}
else
if
(
PageType
==
Page_Tpms_Unit
)
{
PageType
=
=
Page_Front_Tpms
;
PageType
=
Page_Front_Tpms
;
}
else
if
((
PageType
==
Page_Front_Tpms
)
||
(
PageType
==
Page_Rear_Tpms
))
{
...
...
Firmware/Source/Component/Key/Key_user.h
View file @
ea2bb0b7
...
...
@@ -20,8 +20,10 @@ typedef struct
uint8_t
KM_Unit
;
// 0 km, 1 mile
uint8_t
Tpms_Unit
;
// 0 bar, 1 psi
uint32_t
Tcs_Val
;
// 0 off, 1 on
uint32_t
TPMS_Front_Learn
;
uint32_t
TPMS_Rear_Learn
;
uint8_t
TPMS_Front_Learn
;
uint8_t
TPMS_Rear_Learn
;
uint8_t
TPMS_Front_FirstLearn_Flag
;
uint8_t
TPMS_Rear_FirstLearn_Flag
;
}
_Menu_Data
;
typedef
enum
...
...
Firmware/Source/Component/Mileage/Services_Mileage_User.c
View file @
ea2bb0b7
...
...
@@ -10,16 +10,18 @@ uint8_t odo_writeState;
uint8_t
odo_readState
;
extern
uint32_t
NVM_User_Settings_Service
;
#define EEPROM_BLOCK_00 00
#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
#define EEPROM_BLOCK_07 112
#define EEPROM_BLOCK_08 128
#define EEPROM_BLOCK_09 144
#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
#define EEPROM_BLOCK_07 0xA0
#define EEPROM_BLOCK_08 0xB0
#define EEPROM_BLOCK_09 0xC0
uint32_t
Milleage_InitFlag
=
0U
;
...
...
@@ -39,7 +41,7 @@ void Data_User_Mileage_KL30Init(void)
ODO_Init_t
ODOInit
=
{
0
};
uint32_t
Maintenance_Firstflg
[
1u
]
=
{
0
};
Trip_Init_t
TripInit
[
4
]
=
{
0
};
uint
32
_t
TPMSLearn
[
2
]
=
{
0
,
0
};
uint
8
_t
TPMSLearn
[
2
]
=
{
0
,
0
};
Milleage_InitFlag
=
0U
;
// �������ݴ�EEPROM�ж�ȡ
(
void
)
Data_User_EEPROM_Read
(
EM_MILEAGE_BLOCK
,
TempBuf
,
1
);
...
...
@@ -119,12 +121,14 @@ void Data_User_Mileage_KL30Init(void)
Data_User_EEPROM_Write
(
EM_MenuData_Tcs_Val
,
&
MenuData
.
Tcs_Val
,
1u
);
}
Data_User_EEPROM_Read
(
EM_MenuData_TPMS_LEARN
,
TempBuf
,
2
u
);
Data_User_EEPROM_Read
(
EM_MenuData_TPMS_LEARN
,
TempBuf
,
1
u
);
if
(
TempBuf
[
0u
]
==
0xFFFFFFFF
)
{
TPMSLearn
[
0
]
=
MenuData
.
TPMS_Front_Learn
;
TPMSLearn
[
1
]
=
MenuData
.
TPMS_Rear_Learn
;
Data_User_EEPROM_Write
(
EM_MenuData_TPMS_LEARN
,
TPMSLearn
,
2u
);
TPMSLearn
[
0
]
=
0
;
//MenuData.TPMS_Front_Learn;
TPMSLearn
[
1
]
=
0
;
//MenuData.TPMS_Rear_Learn;
//TPMSLearn[2] = 0;//MenuData.TPMS_Front_FirstLearn_Flag;
//TPMSLearn[3] = 0;//MenuData.TPMS_Rear_FirstLearn_Flag;
Data_User_EEPROM_Write
(
EM_MenuData_TPMS_LEARN
,
(
uint32_t
*
)
TPMSLearn
,
1u
);
}
Milleage_InitFlag
=
0X5AA53AA3UL
;
...
...
@@ -183,9 +187,10 @@ uint32_t Get_MileageInit_Status(void)
eeprom_ReadRecord
(
EEPROM_BLOCK_08
,
(
uint8_t
*
)
u32Data
,
u16Len
*
4
);
break
;
case
EM_MenuData_TPMS_LEARN
:
eeprom_ReadRecord
(
EEPROM_BLOCK_09
,
(
uint8_t
*
)
u32Data
,
u16Len
*
4
);
eeprom_ReadRecord
(
EEPROM_BLOCK_09
,
(
uint8_t
*
)
u32Data
,
u16Len
*
2
);
break
;
default:
break
;
}
...
...
@@ -228,10 +233,10 @@ uint32_t Get_MileageInit_Status(void)
eeprom_WriteRecord
(
EEPROM_BLOCK_07
,
(
uint8_t
*
)
u32Data
,
u16Len
*
4
);
break
;
case
EM_MenuData_Tcs_Val
:
eeprom_WriteRecord
(
EEPROM_BLOCK_08
,
(
uint8_t
*
)
u32Data
,
u16Len
*
4
);
eeprom_WriteRecord
(
EEPROM_BLOCK_08
,
(
uint8_t
*
)
u32Data
,
u16Len
*
1
);
break
;
case
EM_MenuData_TPMS_LEARN
:
eeprom_WriteRecord
(
EEPROM_BLOCK_09
,
(
uint8_t
*
)
u32Data
,
u16Len
*
4
);
eeprom_WriteRecord
(
EEPROM_BLOCK_09
,
(
uint8_t
*
)
u32Data
,
u16Len
*
2
);
break
;
default:
break
;
...
...
Firmware/Source/Component/PowerManagement/PowerManag_user.c
View file @
ea2bb0b7
...
...
@@ -90,6 +90,7 @@ static void Power_KL30_Init(void)
g_stRTCInformation
.
u8RTCYear
=
20
;
RTE_RTC_Init
(
g_stRTCInformation
);
RTE_DEEPSLEEP_GPIO_Interrupt_Enable
(
WAKEUP_KL15_In
,
Trigger_Rising
);
FaultCode_Init
();
}
extern
uint32_t
PowerIgnOffTimeLine
;
...
...
@@ -135,6 +136,7 @@ static void Power_Wakeup_Init(void)
Telltales_UserInit
();
Data_TPMS_KL15_WAKE_UP_Init
();
RTE_DEEPSLEEP_GPIO_Interrupt_Enable
(
WAKEUP_KL15_In
,
Trigger_Rising
);
FaultCode_Init
();
}
static
void
Power_LVP_Init
(
void
)
...
...
@@ -168,6 +170,7 @@ static void Power_IG_ON_Init(void)
CAN_TX_SetEnable
(
&
CAN_CH0_CanMsgTxOp
,
CAN_N_TX_Enable
);
DFlash_init
();
Data_Read_DiagPara
();
FaultCode_Init
();
}
static
void
Power_Sleep_Init
(
void
)
...
...
@@ -293,6 +296,7 @@ static Power_Status_em Power_Stay_Protect(void)
}
BU98R10_Init
(
);
CAN_TX_SetEnable
(
&
CAN_CH0_CanMsgTxOp
,
CAN_N_TX_Enable
);
Common_DataInit
();
return
u8PowerSts
;
}
}
...
...
Firmware/Source/Device/Cmsemicon/BAT32A239/RTE/AD/RTE_ADC_INTERIM_VERSION.c
View file @
ea2bb0b7
...
...
@@ -4,8 +4,9 @@
#include "cgc.h"
#include "gpio.h"
#include "isr.h"
#include "Analog\Analog_Signals.h"
uint8_t
u8NewChNum
[
4
]
=
{
2
,
3
,
7
,
5
};
// uint8_t
u8NewChNum[4] = {2, 3, 7, 5};
void
RTC_ADC_Interrupt
(
void
*
msg
)
{
...
...
@@ -18,6 +19,7 @@ void RTE_ADC_Init(const uint8_t u8ChList[], uint8_t u8ChNum)
GPIO_InitTypeDef
GPIO_InitStructure
=
{
0
};
ADC_InitTypeDef
ADC_InitStructure
=
{
0
};
if
(
u8ChNum
<=
7
)
{
GPIO_InitStructure
.
GPIO_Pin
=
1U
<<
u8ChNum
;
...
...
@@ -133,13 +135,13 @@ void RTE_ADC_Get_Conversion_Result(uint16_t *pu16Data, uint8_t u8ChNum)
uint8_t
i
;
if
((
pu16Data
!=
0U
)
&&
(
u8ChNum
>
0U
)
&&
(
u8ChNum
<=
4U
))
if
((
pu16Data
!=
0U
)
&&
(
u8ChNum
>
0U
)
&&
(
u8ChNum
<=
ADC_TOTAL_CH_NUMBER
))
{
if
(
RTE_ADC_Get_Conversion_Status
()
==
0U
)
{
for
(
i
=
0U
;
i
<
u8ChNum
;
i
++
)
{
ADC_Converse
(
u8NewChNum
[
i
],
1
,
pu16Data
);
ADC_Converse
(
(
ADC_Channel_t
)
u8ADCChList
[
i
],
1
,
pu16Data
);
pu16Data
++
;
}
}
...
...
Firmware/Source/Device/Cmsemicon/BAT32A239/RTE/AD/RTE_ADC_INTERIM_VERSION.h
View file @
ea2bb0b7
...
...
@@ -4,6 +4,8 @@
#include <stdint.h>
extern
const
uint8_t
u8ADCChList
[];
#define ADC_RESOLUTION (4096U)
/* 12bit ADC */
extern
void
RTE_ADC_Init
(
const
uint8_t
u8ChList
[],
uint8_t
u8ChNum
);
...
...
Firmware/Source/System/Sys_Task_List.c
View file @
ea2bb0b7
...
...
@@ -38,10 +38,10 @@ void Sys_5ms_Tasks(void)
}
uint8_t
ljs_buf
[
200
]
=
{
0
};
//
uint8_t ljs_buf[200] = {0};
void
Sys_10ms_Tasks
(
void
)
{
memset
(
ljs_buf
,
0x55
,
200
);
//
memset(ljs_buf, 0x55, 200);
Line_In_Debounce_Service
(
10u
);
Key_Service
();
Data_Mileage_Write_EEPROM
();
...
...
@@ -53,6 +53,7 @@ void Sys_10ms_Tasks(void)
Protocol_Service
();
Protocol_Send_Service
();
//Uart0_IntSend(ljs_buf, 200) ;
FaultCode_Service
(
10u
);
}
void
Sys_20ms_Tasks
(
void
)
...
...
@@ -62,6 +63,7 @@ void Sys_20ms_Tasks(void)
Data_Vehicle_Speed_Processing_Service
();
Data_Engine_Speed_Processing_Service
();
Data_Coolant_Temp_Processing_Service
();
Data_Voltage_Processing_Service
();
}
...
...
@@ -88,7 +90,7 @@ void Sys_100ms_Tasks(void)
Fuel_Cal_Sevice
(
100u
);
BackLight_Process
();
Services_Mileage_Callback
();
Data_Voltage_Processing_Service
();
//
Data_Voltage_Processing_Service();
S3_ServerCNTT
();
//ECU_FaultCode_Processing_Service();
Send_UUID_To_Esp32
();
...
...
@@ -111,6 +113,7 @@ void Sys_100ms_Tasks(void)
* @brief 50us中断服务 尽可能的减少中断使用
*
*/
void
Sys_Exact_50us_Tasks
(
void
)
{
static
uint32_t
task_1ms
=
0u
;
...
...
@@ -122,5 +125,5 @@ void Sys_Exact_50us_Tasks(void)
task_1ms
=
0U
;
eeprom_1ms_timeCount
(
);
}
//u32YZHDCount++;
}
Firmware/Source/UDS/UDS_ISO14229_Services.h
View file @
ea2bb0b7
...
...
@@ -314,10 +314,10 @@
#define SWV 0x100 // 0x100 = 1.00 software version 软件版本号
#define HWV 0x100 // 0x100 = 1.00 hardware version 硬件版本号
#define BTV 0x100 // 0x100 = 1.00 bootloader version boot程序版本号
#define INTLV 0x10
2
// 0x100 = 1.00 internal version 内部版本号
#define INTLV 0x10
3
// 0x100 = 1.00 internal version 内部版本号
#define PROG_Y 0x24 // 0x24 = 2024年, program year
#define PROG_M 0x0
5
// 0x03 = 3月, program month
#define PROG_D 0x
27
// 0x19 = 19日, program day
#define PROG_M 0x0
6
// 0x03 = 3月, program month
#define PROG_D 0x
19
// 0x19 = 19日, program day
/******************************************************************************
Bootloader Variable
...
...
Firmware/utility/串口协议/天鹰蓝牙与底板通讯协议V1.0.xlsx
0 → 100644
View file @
ea2bb0b7
File added
Firmware/utility/程序释放/软件变更记录(天鹰项目139).xlsx
View file @
ea2bb0b7
No preview for this file type
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