Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
R
RT_RMR42E
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
时昊
RT_RMR42E
Commits
07819f7b
Commit
07819f7b
authored
Mar 05, 2025
by
高士达
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'lgh_from_dev' into 'dev'
Lgh from dev See merge request
!26
parents
bb5bff99
0aecf20c
Changes
17
Hide whitespace changes
Inline
Side-by-side
Showing
17 changed files
with
260 additions
and
41 deletions
+260
-41
BackLight_User.c
Firmware/Source/Application/BackLight/BackLight_User.c
+11
-0
CAN_CH0_CAN_Communication_Matrix.c
...ce/Application/CAN_APP/CAN_CH0_CAN_Communication_Matrix.c
+1
-1
Can_RX_User.c
Firmware/Source/Application/CAN_User/Can_RX_User.c
+5
-0
Can_RX_User.h
Firmware/Source/Application/CAN_User/Can_RX_User.h
+1
-0
Can_User.c
Firmware/Source/Application/CAN_User/Can_User.c
+17
-0
Can_User.h
Firmware/Source/Application/CAN_User/Can_User.h
+2
-1
CommonInterface.c
...ware/Source/Application/CommonInterface/CommonInterface.c
+13
-0
Data_Soc.c
Firmware/Source/Application/Data_Soc/Data_Soc.c
+9
-18
Data_Soc.h
Firmware/Source/Application/Data_Soc/Data_Soc.h
+1
-0
GUI_Display.c
Firmware/Source/Application/GUI_Display/GUI_Display.c
+115
-0
GUI_Display.h
Firmware/Source/Application/GUI_Display/GUI_Display.h
+7
-0
SEG_DISPLAY.c
Firmware/Source/Application/SEG_DISPLAY/SEG_DISPLAY.c
+1
-1
PowerManag_user.c
Firmware/Source/Component/PowerManagement/PowerManag_user.c
+58
-8
Telltales_user.c
Firmware/Source/Component/Telltales/Telltales_user.c
+14
-12
DeepSleep.c
...urce/Device/Cmsemicon/BAT32A239/RTE/DeepSleep/DeepSleep.c
+3
-0
DeepSleep.h
...urce/Device/Cmsemicon/BAT32A239/RTE/DeepSleep/DeepSleep.h
+1
-0
Sys_Task_List.c
Firmware/Source/System/Sys_Task_List.c
+1
-0
No files found.
Firmware/Source/Application/BackLight/BackLight_User.c
View file @
07819f7b
...
...
@@ -56,7 +56,18 @@ uint8_t Get_BackLight_En(void)
}
else
{
#if(PART_NUMBER == G54_A01)
if
((
Get_CAN_Power_State
()
==
PKEY_ON
)
&&
(
Get_Soc1_Valid
()
==
1U
))
{
return
1
;
}
else
{
return
0
;
}
#else
return
0
;
#endif
}
}
/**
...
...
Firmware/Source/Application/CAN_APP/CAN_CH0_CAN_Communication_Matrix.c
View file @
07819f7b
...
...
@@ -606,7 +606,7 @@ const st_CANMsgAttribute CAN_CH0_CAN_MSG_CONST_ARRAY[CAN_CH0_ID_TOTAL_MAX] =
500ul
,
0x17Aul
,
((
void
*
)
0
),
(
(
void
*
)
0
),
(
CAN_0x17A_Receive
),
((
void
*
)
0
),
},
{
...
...
Firmware/Source/Application/CAN_User/Can_RX_User.c
View file @
07819f7b
...
...
@@ -667,3 +667,8 @@ void CAN_0x339_Receive(uint8_t CopyData [])
{
g_u8ID339flag
=
1U
;
}
void
CAN_0x17A_Receive
(
uint8_t
CopyData
[])
{
g_Msg0x17AFlag
=
1U
;
}
Firmware/Source/Application/CAN_User/Can_RX_User.h
View file @
07819f7b
...
...
@@ -46,5 +46,6 @@ extern void CAN_0x16B_Receive(uint8_t CopyData []);
extern
void
CAN_0x22F_Receive
(
uint8_t
CopyData
[]);
extern
void
CAN_0x170_Receive
(
uint8_t
CopyData
[]);
extern
void
CAN_0x339_Receive
(
uint8_t
CopyData
[]);
extern
void
CAN_0x17A_Receive
(
uint8_t
CopyData
[]);
#endif
Firmware/Source/Application/CAN_User/Can_User.c
View file @
07819f7b
...
...
@@ -5,6 +5,8 @@
#include "can.h"
#include "RTE.h"
uint16_t
EnterDeepSleepCount
=
0U
;
__align
(
4
)
uint32_t
pRXBuff
[
CAN_RX_MSG_Block
*
CAN_CH0_ID_TOTAL_MAX
];
uint32_t
pTXBuff
[
CAN_TX_MSG_Block
*
CAN_CH0_ID_SEND_TOTAL
];
...
...
@@ -341,6 +343,7 @@ void Can_Tx_Apply_Buff(void)
*/
void
Can_Rx_Cak
(
CanTxRxMsg
*
Msg
)
{
EnterDeepSleepCount
=
0U
;
Co_Can_Buff_Set
(
&
CAN_CH0_CanMsgOp
,
Co_Can_ConvertSubID_CAN_CH0
(
Msg
->
Id
),
Msg
->
DLC
,
Msg
->
Data
);
if
((
Msg
->
Id
==
DIAG_ID_Rx_FUN
)
||
(
Msg
->
Id
==
DIAG_ID_Rx_PHY
))
...
...
@@ -348,6 +351,20 @@ void Can_Rx_Cak(CanTxRxMsg *Msg)
DoCAN_L_Data_Indication
(
Msg
->
Id
,
Msg
->
DLC
,
Msg
->
Data
);
}
}
/*放到哪个任务中调用,就传入time的值是多少,如:100ms任务中就传入100*/
void
CAN_Offline_Count
(
uint8_t
time
)
{
if
(
Get_CAN_Power_State
()
<
KEY_ACC
)
{
EnterDeepSleepCount
+=
time
;
}
else
{
EnterDeepSleepCount
=
0U
;
}
}
/**
* @brief CAN库初始化TX/RX
*
...
...
Firmware/Source/Application/CAN_User/Can_User.h
View file @
07819f7b
...
...
@@ -30,7 +30,7 @@ typedef struct
uint8_t
RecoverTimer
;
}
RSCAN0BusoffMonitorStruct
;
extern
uint16_t
EnterDeepSleepCount
;
extern
void
CAN_TX_Init
(
void
);
extern
void
Can_Tx_Apply_Buff
(
void
);
...
...
@@ -39,6 +39,7 @@ extern void Can_BusOff_Recover(uint8_t deltaTime);
extern
void
COM_CAN_Init
(
void
);
extern
void
Can_Init
(
void
);
extern
void
Can_Rx_Cak
(
CanTxRxMsg
*
Msg
);
extern
void
CAN_Offline_Count
(
uint8_t
time
);
extern
uint8_t
COM_APP_Process
(
st_CAN_Msg
*
Msg
);
extern
void
Can_Write
(
st_CAN_Msg
*
Msg
);
...
...
Firmware/Source/Application/CommonInterface/CommonInterface.c
View file @
07819f7b
...
...
@@ -115,6 +115,7 @@ void Common_Input_Para(void)
}
else
{
#if (PART_NUMBER == RMR42E_60)
PowerIgnOnTimeLine
=
0ul
;
if
(
PowerIgnOffTimeLine
<
0x7ffffffful
)
{
...
...
@@ -132,6 +133,18 @@ void Common_Input_Para(void)
Common_Set_IG_Sts
(
COMMON_POWER_OFF
);
Common_Set_IG_Sts_Valid
(
COMMON_Valid
);
#else
if
(
Get_CAN_Power_State
()
==
KEY_OFF
)
{
PowerIgnOnTimeLine
=
0ul
;
if
(
PowerIgnOffTimeLine
<
0x7ffffffful
)
{
PowerIgnOffTimeLine
+=
2u
;
}
}
Common_Set_IG_Sts
(
COMMON_POWER_OFF
);
Common_Set_IG_Sts_Valid
(
COMMON_Valid
);
#endif
}
#endif
...
...
Firmware/Source/Application/Data_Soc/Data_Soc.c
View file @
07819f7b
...
...
@@ -4,6 +4,7 @@
SocStruct_st_t
Soc
;
uint8_t
SOC_Count_Time
=
0
;
uint8_t
g_Msg0x17AFlag
=
0U
;
uint16_t
SocPoweroffTime
=
0
;
static
void
Data_Soc_Battery_Level_Service
(
void
);
...
...
@@ -26,6 +27,7 @@ void Data_Soc_KL30_Init(void)
Soc
.
AllSocValue
=
0U
;
Soc
.
AllSocValid
=
0U
;
SocPoweroffTime
=
0U
;
g_Msg0x17AFlag
=
0U
;
}
void
Data_Soc_KL15_Init
(
void
)
...
...
@@ -117,16 +119,11 @@ static void Data_Soc_Battery_Level_Service(void)
if
(
Get_CAN_Power_State
()
>
KEY_OFF
)
{
if
(
CAN_MSG_Status
(
&
CAN_CH0_CanMsgOp
,
Co_Can_ConvertSubID_CAN_CH0
(
CAN_CH0_ID_CAN_0x17A_Msg
))
==
CAN_SIG_NORMAL
)
if
(
(
CAN_MSG_Status
(
&
CAN_CH0_CanMsgOp
,
Co_Can_ConvertSubID_CAN_CH0
(
CAN_CH0_ID_CAN_0x17A_Msg
))
==
CAN_SIG_NORMAL
)
&&
(
g_Msg0x17AFlag
==
1U
)
)
{
Soc
.
Value1
=
Get_CAN_CH0_ID_17A_Sig_MBMS_StatSoc
();
Soc
.
Valid1
=
1U
;
}
else
{
Soc
.
Value1
=
0U
;
Soc
.
Valid1
=
0U
;
}
if
(
Soc
.
Valid1
!=
0U
)
{
...
...
@@ -376,7 +373,6 @@ static void Data_Soc_DisplayEffect_Service(void)
}
else
{
Soc
.
Valid1
=
1U
;
SocPoweroffTime
++
;
}
}
...
...
@@ -384,17 +380,12 @@ static void Data_Soc_DisplayEffect_Service(void)
{
Soc
.
Valid1
=
0U
;
}
else
{
Soc
.
Valid1
=
1U
;
}
}
else
{
if
(
Get_CAN_Power_State
()
==
KEY_ACC
)
{
Soc
.
Dis_Seg1
=
Soc
.
Act_Seg1
;
Soc
.
Valid1
=
1U
;
}
else
{
...
...
@@ -512,19 +503,20 @@ static void Data_Soc_All_Soc_Service(void)
Soc
.
AllSocValid
=
0U
;
}
#else
uint8_t
MBMSStatSoc
=
Get_CAN_CH0_ID_17A_Sig_MBMS_StatSoc
();
uint8_t
VCUChgMode
=
Get_CAN_CH0_ID_220_Sig_VCU_ChgMode
();
if
(
MBMSStatSoc
>
100U
)
if
(
(
CAN_MSG_Status
(
&
CAN_CH0_CanMsgOp
,
Co_Can_ConvertSubID_CAN_CH0
(
CAN_CH0_ID_CAN_0x17A_Msg
))
==
CAN_SIG_NORMAL
)
&&
(
g_Msg0x17AFlag
==
1U
)
)
{
MBMSStatSoc
=
100u
;
Soc
.
AllSocValue
=
Get_CAN_CH0_ID_17A_Sig_MBMS_StatSoc
();
if
(
Soc
.
AllSocValue
>
100U
)
{
Soc
.
AllSocValue
=
100u
;
}
}
if
(
VCUChgMode
==
1U
)
{
if
(
Get_CAN_Power_State
()
>
KEY_OFF
)
{
Soc
.
AllSocValue
=
MBMSStatSoc
;
Soc
.
AllSocValid
=
1U
;
}
else
...
...
@@ -542,7 +534,6 @@ static void Data_Soc_All_Soc_Service(void)
}
else
{
Soc
.
AllSocValue
=
MBMSStatSoc
;
Soc
.
AllSocValid
=
1U
;
}
}
...
...
Firmware/Source/Application/Data_Soc/Data_Soc.h
View file @
07819f7b
...
...
@@ -35,6 +35,7 @@ typedef struct //__attribute__((aligned(4)))
}
SocStruct_st_t
;
extern
uint8_t
g_Msg0x17AFlag
;
extern
void
Data_Soc_KL30_Init
(
void
);
extern
void
Data_Soc_KL15_Init
(
void
);
...
...
Firmware/Source/Application/GUI_Display/GUI_Display.c
View file @
07819f7b
...
...
@@ -6,6 +6,8 @@
uint8_t
Charge_OFF_Flag
=
0
;
void
Clear_Bu98_Conditions
(
DoNot_Close_Seg_en_t
closeType
);
void
TYW_Clear_Eeprom_Service
(
void
)
{
#if (PART_NUMBER == RMR42E_60)
...
...
@@ -162,10 +164,88 @@ void Clear_Bu98(void)
}
}
void
Clear_Bu98_Conditions
(
DoNot_Close_Seg_en_t
closeType
)
{
uint8_t
i
=
0
;
uint8_t
transitionData
=
0U
;
if
(
closeType
==
ONLY_TEL
)
{
for
(
i
=
0
;
i
<
BU98R10_DDRAM_SIZE
;
i
++
)
{
if
(
i
==
74U
)
{
transitionData
=
((
BU98R10Chip0DDRAM
.
Byte
[
75
]
>>
4U
)
&
0xFU
);
BU98R10Chip0DDRAM
.
Byte
[
75
]
=
((
transitionData
<<
4U
)
+
0
);
transitionData
=
0
;
}
else
{
BU98R10Chip0DDRAM
.
Byte
[
i
]
=
0
;
}
if
(
i
==
46U
)
{
transitionData
=
((
BU98R10Chip1DDRAM
.
Byte
[
46
])
&
0xFU
);
BU98R10Chip1DDRAM
.
Byte
[
46
]
=
transitionData
;
transitionData
=
0
;
}
else
{
BU98R10Chip1DDRAM
.
Byte
[
i
]
=
0
;
}
}
}
else
if
(
closeType
==
TEL_AND_SOC
)
{
for
(
i
=
0
;
i
<
BU98R10_DDRAM_SIZE
;
i
++
)
{
if
((
i
==
26
)
||
(
i
==
28
)
||
(
i
==
74U
))
{
transitionData
=
((
BU98R10Chip0DDRAM
.
Byte
[
i
]
>>
4U
)
&
0xFU
);
BU98R10Chip0DDRAM
.
Byte
[
i
]
=
((
transitionData
<<
4U
)
+
0
);
transitionData
=
0
;
}
else
if
((
i
==
29U
)
||
(
i
==
30U
)
||
(
i
==
31U
)
||
(
i
==
32U
)
||
(
i
==
33U
)
||
(
i
==
34U
)
||
(
i
==
35U
)
||
(
i
==
60U
)
||
(
i
==
67U
)
||
(
i
==
68U
)
||
(
i
==
71U
)
||
(
i
==
72U
)
||
(
i
==
73U
))
{
;
}
else
{
BU98R10Chip0DDRAM
.
Byte
[
i
]
=
0
;
}
if
(
i
==
46U
)
{
transitionData
=
((
BU98R10Chip1DDRAM
.
Byte
[
46
])
&
0xFU
);
BU98R10Chip1DDRAM
.
Byte
[
46
]
=
transitionData
;
transitionData
=
0
;
}
else
{
BU98R10Chip1DDRAM
.
Byte
[
i
]
=
0
;
}
}
}
else
{
for
(
i
=
0
;
i
<
BU98R10_DDRAM_SIZE
;
i
++
)
{
BU98R10Chip0DDRAM
.
Byte
[
i
]
=
0
;
BU98R10Chip1DDRAM
.
Byte
[
i
]
=
0
;
}
}
}
void
Gauge_Service
(
void
)
{
uint8_t
i
=
0
;
#if(PART_NUMBER == G54_A01)
if
((
Common_Get_IG_Sts
()
==
COMMON_POWER_ON
)
&&
(
Get_CAN_Power_State
()
==
KEY_ACC
))
#else
if
(
Common_Get_IG_Sts
()
==
COMMON_POWER_ON
)
#endif
{
if
((
Get_CAN_Power_State
()
!=
PKEY_ON
)
&&
(
Get_CAN_Power_State
()
!=
KEY_OFF
)
&&
(
Get_CAN_Power_State
()
!=
POWER_CHECK_NULL
))
{
...
...
@@ -226,12 +306,47 @@ void Gauge_Service(void)
}
else
{
#if(PART_NUMBER == G54_A01)
if
(
Get_CAN_Power_State
()
==
PKEY_ON
)
{
if
((
Get_CAN_Power_State
()
==
PKEY_ON
)
&&
(
Get_Soc1_Valid
()
==
1U
))
{
Gauge_Power_SOC_pull_Display
();
Gauge_EleDial_AllSOC_Display
();
Clear_Bu98_Conditions
(
TEL_AND_SOC
);
}
else
{
Clear_Bu98_Conditions
(
ONLY_TEL
);
}
for
(
i
=
0
;
i
<
LampCh0_MAX
;
i
++
)
{
if
((
i
==
LampCh0_08_Battery_Charging_W
)
||
(
i
==
LampCh0_32_Charging_Connection_R
))
{
;
}
else
{
LED_Driver_Channel_Set
(
LampChannel_0
,
i
,
LED_OFF
);
}
}
}
else
{
Clear_Bu98
();
for
(
i
=
0
;
i
<
LampCh0_MAX
;
i
++
)
{
LED_Driver_Channel_Set
(
LampChannel_0
,
i
,
LED_OFF
);
}
}
#else
Clear_Bu98
();
interact_PWM_Low_Duty
=
100
;
for
(
i
=
0
;
i
<
LampCh0_MAX
;
i
++
)
{
LED_Driver_Channel_Set
(
LampChannel_0
,
i
,
LED_OFF
);
}
#endif
}
}
...
...
Firmware/Source/Application/GUI_Display/GUI_Display.h
View file @
07819f7b
...
...
@@ -5,6 +5,13 @@
#define EEPROM_BLOCK_00 0
typedef
enum
{
ONLY_TEL
,
/*只保持充电中指示灯和充电线不连接指示灯不关闭*/
TEL_AND_SOC
,
/*保持充电中指示灯和充电线不连接指示灯以及电量表和总电量值显示不关闭*/
}
DoNot_Close_Seg_en_t
;
typedef
struct
{
uint16_t
value
;
...
...
Firmware/Source/Application/SEG_DISPLAY/SEG_DISPLAY.c
View file @
07819f7b
...
...
@@ -663,7 +663,7 @@ _Fun_Res SEG_SET_EleDial_1SOC(uint8_t m_Flag, uint8_t m_SEG)
#if (PART_NUMBER == RMR42E_60)
if
(((
m_Flag
==
1u
)
&&
(
CAN_MSG_Status
(
&
CAN_CH0_CanMsgOp
,
Co_Can_ConvertSubID_CAN_CH0
(
CAN_CH0_ID_CAN_0x18200A20_Msg
))
==
CAN_SIG_NORMAL
))
||
(
checkself_seg_Flag
==
1
))
#else
if
((
(
m_Flag
==
1u
)
&&
(
CAN_MSG_Status
(
&
CAN_CH0_CanMsgOp
,
Co_Can_ConvertSubID_CAN_CH0
(
CAN_CH0_ID_CAN_0x17A_Msg
))
==
CAN_SIG_NORMAL
)
)
||
(
checkself_seg_Flag
==
1
))
if
((
m_Flag
==
1u
)
||
(
checkself_seg_Flag
==
1
))
#endif
{
IC1_SEG136
=
IC_SEG_GREY
;
...
...
Firmware/Source/Component/PowerManagement/PowerManag_user.c
View file @
07819f7b
...
...
@@ -71,7 +71,7 @@ static void Power_KL30_Init(void)
g_stRTCInformation
.
u8RTCMonth
=
1
;
g_stRTCInformation
.
u8RTCYear
=
20
;
RTE_RTC_Init
(
g_stRTCInformation
);
RTE_DEEPSLEEP_GPIO_Interrupt_Enable
(
KL15_AD_IN
,
Trigger_Rising
);
//
RTE_DEEPSLEEP_GPIO_Interrupt_Enable(KL15_AD_IN,Trigger_Rising);
Data_Soc_KL30_Init
();
Data_Time_KL30_Init
();
Data_Gear_KL30_Init
();
...
...
@@ -84,6 +84,7 @@ extern uint32_t PowerIgnOffTimeLine;
static
void
Power_Wakeup_Init
(
void
)
{
PowerIgnOffTimeLine
=
0
;
g_u8CanrxSleepstate
=
0U
;
Simulated_IIC_2_Init
();
Gpio_Init
(
Gpio_WakeUp_Init
);
Can_Init
();
...
...
@@ -100,7 +101,7 @@ static void Power_Wakeup_Init(void)
TimerM_PWM_CH_Output_init
(
TIMERM_COUNTER0
,
TIMERM_CHD
,
ActiveLevel_High
);
TimerM_PWM_CH_Output_init
(
TIMERM_COUNTER1
,
TIMERM_CHB
,
ActiveLevel_High
);
Telltales_Init
();
RTE_DEEPSLEEP_GPIO_Interrupt_Enable
(
KL15_AD_IN
,
Trigger_Rising
);
//
RTE_DEEPSLEEP_GPIO_Interrupt_Enable(KL15_AD_IN,Trigger_Rising);
}
static
void
Power_LVP_Init
(
void
)
...
...
@@ -125,6 +126,7 @@ static void Power_IG_ON_Init(void)
LED_Driver_Service_Immediate
();
Fault_Code_KL15_Init
();
Data_Time_KL15_Init
();
Data_Soc_KL15_Init
();
}
static
void
Power_Sleep_Init
(
void
)
...
...
@@ -145,7 +147,9 @@ static void Power_Sleep_Init(void)
LED_Driver_Init_Sleep
();
LED_Driver_Service
();
Analog_Signal_Conv_Stop
();
RTE_DEEPSLEEP_Enable
();
// RTE_DEEPSLEEP_Enable();
RTE_DEEPSLEEP_GPIO_Interrupt_Enable
(
CAN_MCU_RXD
,
Trigger_Falling
);
g_u8CanrxSleepstate
=
0U
;
}
static
Power_Status_em
Power_Stay_ON
(
void
)
...
...
@@ -169,8 +173,8 @@ static Power_Status_em Power_Stay_OFF(void)
{
Power_Status_em
u8PowerSts
;
u8PowerSts
=
EM_IGN_OFF
;
if
(
SYS_OPR_STAT_IGN
_ON
)
#if (PART_NUMBER == RMR42E_60)
if
(
Common_Get_IG_Sts
(
)
==
COMMON_POWER
_ON
)
{
u8PowerSts
=
EM_IGN_ON_Init
;
}
...
...
@@ -185,7 +189,38 @@ static Power_Status_em Power_Stay_OFF(void)
// u8PowerSts = EM_IGN_Sleep_Init;
// }
}
#else
if
(
Get_CAN_Power_State
()
==
KEY_ACC
)
{
u8PowerSts
=
EM_IGN_ON_Init
;
}
else
{
if
(
Get_CAN_Power_State
()
==
PKEY_ON
)
{
if
(
EnterDeepSleepCount
>=
5000
)
{
u8PowerSts
=
EM_IGN_Sleep_Init
;
}
else
{
u8PowerSts
=
EM_IGN_OFF
;
}
}
else
{
if
((
Common_GetIgnOffTime
()
<
5000
))
{
u8PowerSts
=
EM_IGN_OFF
;
}
else
{
u8PowerSts
=
EM_IGN_Sleep_Init
;
}
}
}
#endif
return
u8PowerSts
;
}
...
...
@@ -261,7 +296,7 @@ static Power_Status_em Power_Stay_Protect(void)
static
Power_Status_em
Power_Stay_Sleep
(
void
)
{
Power_Status_em
u8PowerSts
=
EM_IGN_Sleep
;
#if (PART_NUMBER == RMR42E_60)
while
(
1
)
{
RTE_WDT_Clear
();
...
...
@@ -271,7 +306,22 @@ static Power_Status_em Power_Stay_Sleep(void)
break
;
}
}
#else
while
(
1
)
{
RTE_WDT_Clear
();
if
((
Get_CAN_Power_State
()
==
PKEY_ON
)
&&
(
g_u8CanrxSleepstate
==
1U
))
/*当电源状态出于PKEY_ON,且接到CAN信号时,才能触发唤醒*/
{
u8PowerSts
=
EM_IGN_Wakeup
;
g_u8CanrxSleepstate
=
0U
;
break
;
}
else
{
RTE_DEEPSLEEP_Enable
();
}
}
#endif
return
u8PowerSts
;
}
...
...
Firmware/Source/Component/Telltales/Telltales_user.c
View file @
07819f7b
...
...
@@ -102,7 +102,7 @@ const LED_Attribute_st LED_Attribute[LED_Max] =
{
em_LED_READY_G
,
NoSelfCheck
,
ExterNalCheck
,
LED_IGN_ON
,
0u
,
3000ul
,
LED_READY_Judgement
,
LED_READY_Execution
},
{
em_LED_Seat_Detection_W
,
NoSelfCheck
,
ExterNalCheck
,
LED_IGN_ON
,
0u
,
3000ul
,
LED_Seat_Detection_Judgement
,
LED_Seat_Detection_Execution
},
{
em_LED_Key_Access_W
,
NoSelfCheck
,
ExterNalCheck
,
LED_IGN_ON
,
0u
,
3000ul
,
LED_Key_Access_Judgement
,
LED_Key_Access_Execution
},
{
em_LED_Battery_Charging_W
,
NoSelfCheck
,
ExterNalCheck
,
LED_IGN_ON
,
0u
,
3000ul
,
LED_Battery_Charging_Judgement
,
LED_Battery_Charging_Execution
},
{
em_LED_Battery_Charging_W
,
NoSelfCheck
,
ExterNalCheck
,
LED_IGN_ON
_OFF
,
0u
,
3000ul
,
LED_Battery_Charging_Judgement
,
LED_Battery_Charging_Execution
},
{
em_LED_Cutterhead_Switch_W
,
NoSelfCheck
,
ExterNalCheck
,
LED_IGN_ON
,
0u
,
3000ul
,
LED_Cutterhead_Switch_Judgement
,
LED_Cutterhead_Switch_Execution
},
{
em_LED_GEAR_W
,
NoSelfCheck
,
ExterNalCheck
,
LED_IGN_ON
,
0u
,
3000ul
,
LED_GEAR_Judgement
,
LED_GEAR_Execution
},
{
em_LED_External_Discharge_W
,
NoSelfCheck
,
ExterNalCheck
,
LED_IGN_ON
,
0u
,
3000ul
,
LED_External_Discharge_Judgement
,
LED_External_Discharge_Execution
},
...
...
@@ -118,7 +118,7 @@ const LED_Attribute_st LED_Attribute[LED_Max] =
{
em_LED_System_Indicator_R
,
NoSelfCheck
,
ExterNalCheck
,
LED_IGN_ON
,
0u
,
3000ul
,
LED_SystIndicator_R_Judgement
,
LED_SystIndicator_R_Execution
},
{
em_LED_P_GEAR_G
,
NoSelfCheck
,
ExterNalCheck
,
LED_IGN_ON
,
0u
,
3000ul
,
LED_P_GEAR_G_Judgement
,
LED_P_GEAR_G_Execution
},
{
em_LED_Fuel_Alarm_W
,
NoSelfCheck
,
ExterNalCheck
,
LED_IGN_ON
,
0u
,
3000ul
,
LED_Fuel_Alarm_W_Judgement
,
LED_Fuel_Alarm_W_Execution
},
{
em_LED_Charging_Connection_R
,
NoSelfCheck
,
ExterNalCheck
,
LED_IGN_ON
,
0u
,
3000ul
,
LED_Charging_Connection_R_Judgement
,
LED_Charging_Connection_R_Execution
},
{
em_LED_Charging_Connection_R
,
NoSelfCheck
,
ExterNalCheck
,
LED_IGN_ON
_OFF
,
0u
,
3000ul
,
LED_Charging_Connection_R_Judgement
,
LED_Charging_Connection_R_Execution
},
{
em_LED_Power_Battery_Failure_R
,
NoSelfCheck
,
ExterNalCheck
,
LED_IGN_ON
,
0u
,
3000ul
,
LED_Power_Battery_Failure_R_Judgement
,
LED_Power_Battery_Failure_R_Execution
},
};
...
...
@@ -978,26 +978,28 @@ static void LED_Working_Hours_One_Execution(Tellib_uint16_t led_status)
static
Tellib_uint16_t
LED_Fault_Codes_Judgement
(
void
)
{
Tellib_uint16_t
LED_STATE
=
0u
;
// if (Line_In_Get_Status(LINE_IN_HighBeam))
// {
// LED_STATE = 1;
// }
// else
// {
// LED_STATE = 0;
// }
#if (PART_NUMBER == G54_A01)
if
(
Get_FaultCode_Valid
()
==
1U
)
{
LED_STATE
=
1U
;
}
else
{
LED_STATE
=
0U
;
}
#endif
return
LED_STATE
;
}
static
void
LED_Fault_Codes_Execution
(
Tellib_uint16_t
led_status
)
{
if
(
led_status
==
1u
)
{
// LED_Driver_Channel_Set(LampChannel_0, LampCh0_07_Key_ISTOP
, LED_ON);
LED_Driver_Channel_Set
(
LampChannel_0
,
LampCh0_19_Fault_Codes_W
,
LED_ON
);
// SEG_SET_LED_STS(1,1);
}
else
{
// LED_Driver_Channel_Set(LampChannel_0, LampCh0_07_Key_ISTOP
, LED_OFF);
LED_Driver_Channel_Set
(
LampChannel_0
,
LampCh0_19_Fault_Codes_W
,
LED_OFF
);
// SEG_SET_LED_STS(1,0);
}
}
...
...
Firmware/Source/Device/Cmsemicon/BAT32A239/RTE/DeepSleep/DeepSleep.c
View file @
07819f7b
...
...
@@ -177,10 +177,13 @@ void DEEPSLEEP_EXTI0_IRQHandler(void *msg)
* @warning None
* @since 1.0.0
*/
unsigned
char
g_u8CanrxSleepstate
=
0U
;
void
DEEPSLEEP_EXTI1_IRQHandler
(
void
*
msg
)
{
/* ����жϱ�־ */
INTC_ClearPendingIRQ
(
INTP1_IRQn
);
g_u8CanrxSleepstate
=
1U
;
}
/**
...
...
Firmware/Source/Device/Cmsemicon/BAT32A239/RTE/DeepSleep/DeepSleep.h
View file @
07819f7b
...
...
@@ -5,6 +5,7 @@
#include "gpio.h"
#include "intp.h"
extern
unsigned
char
g_u8CanrxSleepstate
;
extern
void
RTE_DEEPSLEEP_GPIO_Interrupt_Enable
(
uint16_t
u16Pin
,
Trigger_TypeDef
EXTI_Trigger
);
extern
void
RTE_DEEPSLEEP_Enable
(
void
);
...
...
Firmware/Source/System/Sys_Task_List.c
View file @
07819f7b
...
...
@@ -36,6 +36,7 @@ void Sys_10ms_Tasks(void)
Data_CumulativeWorkHours_EEPROM_Write
();
BackLight_Service
();
Fault_Code_Service
();
CAN_Offline_Count
(
10U
);
}
void
Sys_20ms_Tasks
(
void
)
...
...
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