Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
V
VC66_7C
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
ISUZU
VC66_7C
Commits
fa5f01c5
Commit
fa5f01c5
authored
Oct 21, 2023
by
hu
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
调整电源管理
parent
b69dc729
Changes
10
Hide whitespace changes
Inline
Side-by-side
Showing
10 changed files
with
1044 additions
and
915 deletions
+1044
-915
PowerManagement_user.c
...ce/Application/APP/PowerManagement/PowerManagement_user.c
+4
-1
System_Monitor.c
source/Application/APP/PowerManagement/System_Monitor.c
+756
-593
System_Monitor.h
source/Application/APP/PowerManagement/System_Monitor.h
+97
-106
System_Monitor_user.c
source/Application/APP/PowerManagement/System_Monitor_user.c
+154
-182
Common_Interface.c
source/Application/RTE/Common_Interface.c
+25
-25
Common_Interface.h
source/Application/RTE/Common_Interface.h
+1
-1
d1mx.ld
source/System/d1mx.ld
+1
-1
init.c
source/System/init.c
+4
-4
init.h
source/System/init.h
+1
-1
tasks.c
source/System/tasks.c
+1
-1
No files found.
source/Application/APP/PowerManagement/PowerManagement_user.c
View file @
fa5f01c5
...
@@ -67,6 +67,8 @@
...
@@ -67,6 +67,8 @@
static
uint8_t
PowerGetNMStatus
(
void
);
static
uint8_t
PowerGetNMStatus
(
void
);
extern
void
SEG_LCD_Window_Switch
(
uint8_t
Sw
);
extern
void
SEG_LCD_Window_Switch
(
uint8_t
Sw
);
extern
void
DelayUs
(
uint32_t
time
);
extern
void
DelayUs
(
uint32_t
time
);
extern
void
Sys_KL30_Init
(
void
);
extern
void
Sys_Wakeup_Init
(
void
);
Power_Status_t
Power_KL30_Init
(
void
)
Power_Status_t
Power_KL30_Init
(
void
)
{
{
...
@@ -311,7 +313,8 @@ Power_Status_t Power_Stay_ON(void)
...
@@ -311,7 +313,8 @@ Power_Status_t Power_Stay_ON(void)
u8PowerSts
=
m_IGN_ON
;
u8PowerSts
=
m_IGN_ON
;
}
}
}
}
if
(((
u8Condition3
==
1u
)
||
(
u8Condition3
>=
7u
)))
//if (((u8Condition3 == 1u) || (u8Condition3 >= 7u)))
if
(
SYS_OPR_STAT_HALT
)
{
{
u8PowerSts
=
m_IGN_LIMIT
;
u8PowerSts
=
m_IGN_LIMIT
;
}
}
...
...
source/Application/APP/PowerManagement/System_Monitor.c
View file @
fa5f01c5
#include "System_Monitor.h"
#include "System_Monitor.h"
#define Base_Vol 0u
typedef
struct
{
#define ENTER_LOW_N_RANGE 6500U
monitorlib_uint8_t
SumCnt
;
#define EXIT_LOW_N_RANGE 7000U
monitorlib_uint16_t
DebounceTimer
;
monitorlib_uint32_t
ActVoltage
;
#define ENTER_LOW_Y_RANGE 9000U
monitorlib_uint8_t
FinalSts
;
#define EXIT_LOW_Y_RANGE 9500U
monitorlib_uint8_t
ActSts
;
}
MonitorStruct
;
#define EXIT_HIGH_Y_RANGE 26000U
MonitorStruct
SysFun_KL30Monitor
;
#define ENTER_HIGH_Y_RANGE 26500U
MonitorStruct
SysFun_KL15Monitor
;
#define EXIT_HIGH_N_RANGE 28500U
MonitorStruct
SysNM_KL30Monitor
;
MonitorStruct
SysNM_KL15Monitor
;
#define ENTER_HIGH_N_RANGE 29000U
#define Base_Vol 0u
#define Top_Vol 0xffffu
#define ENTER_LOW_N_RANGE 6500U
#define EXIT_LOW_N_RANGE 7000U
MonitorStruct
SysFun_KL30Monitor
;
MonitorStruct
SysFun_KL15Monitor
;
#define ENTER_LOW_Y_RANGE 9000U
#define EXIT_LOW_Y_RANGE 9500U
MonitorStruct
SysNM_KL30Monitor
;
MonitorStruct
SysNM_KL15Monitor
;
#define EXIT_HIGH_Y_RANGE 26000U
uint8_t
SysWakeUpMode
=
0u
;
#define ENTER_HIGH_Y_RANGE 26500U
static
uint8_t
SetVolFlag
=
0u
;
#define EXIT_HIGH_N_RANGE 28500U
static
uint16_t
t_NM_KL30_Debounce
;
static
uint16_t
t_NM_KL15_Debounce
;
#define ENTER_HIGH_N_RANGE 29000U
static
uint16_t
t_FUN_KL30_Debounce
;
static
uint16_t
t_FUN_KL15_Debounce
;
#define Top_Vol 0xffffu
static
uint16_t
FUNSysVol_Range
[
10u
]
=
static
monitorlib_uint8_t
System_Calc_NMRange
(
monitorlib_uint16_t
u16Vol
);
{
static
monitorlib_uint8_t
System_Calc_FunRange
(
monitorlib_uint16_t
u16Vol
);
Base_Vol
,
ENTER_LOW_N_RANGE
,
static
void
System_Fast_WakeUp
(
void
);
EXIT_LOW_N_RANGE
,
static
void
System_Fun_Process
(
void
);
ENTER_LOW_Y_RANGE
,
static
void
System_NM_Process
(
void
);
EXIT_LOW_Y_RANGE
,
EXIT_HIGH_Y_RANGE
,
MonitorExt_st
pfunction
;
ENTER_HIGH_Y_RANGE
,
EXIT_HIGH_N_RANGE
,
monitorlib_uint8_t
SysWakeUpMode
=
0u
;
ENTER_HIGH_N_RANGE
,
monitorlib_uint8_t
SetVolFlag
=
0u
;
Top_Vol
,
};
monitorlib_uint16_t
FUNSysVol_Range
[
10u
]
=
{
static
uint16_t
NMSysVol_Range
[
10u
]
=
Base_Vol
,
{
ENTER_LOW_N_RANGE
,
Base_Vol
,
EXIT_LOW_N_RANGE
,
ENTER_LOW_N_RANGE
,
ENTER_LOW_Y_RANGE
,
EXIT_LOW_N_RANGE
,
EXIT_LOW_Y_RANGE
,
ENTER_LOW_Y_RANGE
,
EXIT_HIGH_Y_RANGE
,
EXIT_LOW_Y_RANGE
,
ENTER_HIGH_Y_RANGE
,
EXIT_HIGH_Y_RANGE
,
EXIT_HIGH_N_RANGE
,
ENTER_HIGH_Y_RANGE
,
ENTER_HIGH_N_RANGE
,
EXIT_HIGH_N_RANGE
,
Top_Vol
,
ENTER_HIGH_N_RANGE
,
};
Top_Vol
,
};
monitorlib_uint16_t
NMSysVol_Range
[
10u
]
=
{
uint8_t
Read_KL30_ConvertFinish
(
void
)
Base_Vol
,
{
ENTER_LOW_N_RANGE
,
return
SysWakeUpMode
;
EXIT_LOW_N_RANGE
,
}
ENTER_LOW_Y_RANGE
,
EXIT_LOW_Y_RANGE
,
static
uint8_t
System_Calc_FunRange
(
uint16_t
u16Vol
)
EXIT_HIGH_Y_RANGE
,
{
ENTER_HIGH_Y_RANGE
,
uint8_t
i
;
EXIT_HIGH_N_RANGE
,
for
(
i
=
0u
;
i
<
(
sizeof
(
FUNSysVol_Range
)
/
sizeof
(
FUNSysVol_Range
[
0
]));
i
++
)
ENTER_HIGH_N_RANGE
,
{
Top_Vol
,
if
(
u16Vol
<
FUNSysVol_Range
[
i
])
};
{
break
;
monitorlib_uint16_t
t_FUN_KL30_Debounce
;
}
monitorlib_uint16_t
t_FUN_KL15_Debounce
;
}
monitorlib_uint16_t
t_NM_KL30_Debounce
;
return
i
;
monitorlib_uint16_t
t_NM_KL15_Debounce
;
}
monitorlib_uint16_t
t_NM_KL30_Debounce_Cancel
;
monitorlib_uint16_t
t_NM_KL15_Debounce_Cancel
;
static
uint8_t
System_Calc_NMRange
(
uint16_t
u16Vol
)
monitorlib_uint16_t
t_FUN_KL30_Debounce_Cancel
;
{
monitorlib_uint16_t
t_FUN_KL15_Debounce_Cancel
;
uint8_t
i
;
for
(
i
=
0u
;
i
<
(
sizeof
(
NMSysVol_Range
)
/
sizeof
(
NMSysVol_Range
[
0
]));
i
++
)
monitorlib_uint16_t
t_NM_KL30_timer
;
{
monitorlib_uint16_t
t_FUN_KL30_timer
;
if
(
u16Vol
<
NMSysVol_Range
[
i
])
{
monitorlib_uint8_t
Read_KL30_ConvertFinish
(
void
)
break
;
{
}
return
SysWakeUpMode
;
}
}
return
i
;
}
static
monitorlib_uint8_t
System_Calc_FunRange
(
monitorlib_uint16_t
u16Vol
)
{
void
Sys_Set_VolRange
(
const
uint16_t
FUN_Vol
[],
const
uint16_t
NM_Vol
[])
monitorlib_uint8_t
i
;
{
for
(
i
=
0u
;
i
<
(
sizeof
(
FUNSysVol_Range
)
/
sizeof
(
FUNSysVol_Range
[
0
]));
i
++
)
FUNSysVol_Range
[
0
]
=
FUN_Vol
[
0
];
{
FUNSysVol_Range
[
1
]
=
FUN_Vol
[
1
];
if
(
u16Vol
<
FUNSysVol_Range
[
i
]
)
FUNSysVol_Range
[
2
]
=
FUN_Vol
[
2
];
{
FUNSysVol_Range
[
3
]
=
FUN_Vol
[
3
];
break
;
FUNSysVol_Range
[
4
]
=
FUN_Vol
[
4
];
}
FUNSysVol_Range
[
5
]
=
FUN_Vol
[
5
];
}
FUNSysVol_Range
[
6
]
=
FUN_Vol
[
6
];
return
i
;
FUNSysVol_Range
[
7
]
=
FUN_Vol
[
7
];
}
FUNSysVol_Range
[
8
]
=
FUN_Vol
[
8
];
FUNSysVol_Range
[
9
]
=
FUN_Vol
[
9
];
static
monitorlib_uint8_t
System_Calc_NMRange
(
monitorlib_uint16_t
u16Vol
)
{
NMSysVol_Range
[
0
]
=
NM_Vol
[
0
];
monitorlib_uint8_t
i
;
NMSysVol_Range
[
1
]
=
NM_Vol
[
1
];
for
(
i
=
0u
;
i
<
(
sizeof
(
NMSysVol_Range
)
/
sizeof
(
NMSysVol_Range
[
0
]));
i
++
)
NMSysVol_Range
[
2
]
=
NM_Vol
[
2
];
{
NMSysVol_Range
[
3
]
=
NM_Vol
[
3
];
if
(
u16Vol
<
NMSysVol_Range
[
i
]
)
NMSysVol_Range
[
4
]
=
NM_Vol
[
4
];
{
NMSysVol_Range
[
5
]
=
NM_Vol
[
5
];
break
;
NMSysVol_Range
[
6
]
=
NM_Vol
[
6
];
}
NMSysVol_Range
[
7
]
=
NM_Vol
[
7
];
}
NMSysVol_Range
[
8
]
=
NM_Vol
[
8
];
return
i
;
NMSysVol_Range
[
9
]
=
NM_Vol
[
9
];
}
SetVolFlag
=
0x55u
;
}
void
Sys_Set_Pata
(
const
monitorlib_uint16_t
FUN_Vol
[],
MonitorExt_st
*
pfunc
)
{
void
Sys_Set_DebounceTimer
(
uint16_t
u16NMKL30
,
uint16_t
u16NMKL15
,
uint16_t
u16FUNKL30
,
uint16_t
u16FUNKL15
)
FUNSysVol_Range
[
0
]
=
FUN_Vol
[
0
];
{
FUNSysVol_Range
[
1
]
=
FUN_Vol
[
1
];
t_NM_KL30_Debounce
=
u16NMKL30
;
FUNSysVol_Range
[
2
]
=
FUN_Vol
[
2
];
t_NM_KL15_Debounce
=
u16NMKL15
;
FUNSysVol_Range
[
3
]
=
FUN_Vol
[
3
];
t_FUN_KL30_Debounce
=
u16FUNKL30
;
FUNSysVol_Range
[
4
]
=
FUN_Vol
[
4
];
t_FUN_KL15_Debounce
=
u16FUNKL15
;
FUNSysVol_Range
[
5
]
=
FUN_Vol
[
5
];
}
FUNSysVol_Range
[
6
]
=
FUN_Vol
[
6
];
FUNSysVol_Range
[
7
]
=
FUN_Vol
[
7
];
void
System_Monitor_KL30Init
(
void
)
FUNSysVol_Range
[
8
]
=
FUN_Vol
[
8
];
{
FUNSysVol_Range
[
9
]
=
FUN_Vol
[
9
];
SysWakeUpMode
=
0u
;
SysFun_KL30Monitor
.
SumCnt
=
0u
;
t_FUN_KL30_Debounce
=
FUN_Vol
[
10
];
SysFun_KL30Monitor
.
DebounceTimer
=
0u
;
t_FUN_KL15_Debounce
=
FUN_Vol
[
11
];
SysFun_KL30Monitor
.
ActVoltage
=
0u
;
SysFun_KL30Monitor
.
FinalSts
=
0u
;
NMSysVol_Range
[
0
]
=
FUN_Vol
[
12
];
SysFun_KL30Monitor
.
ActSts
=
0u
;
NMSysVol_Range
[
1
]
=
FUN_Vol
[
13
];
NMSysVol_Range
[
2
]
=
FUN_Vol
[
14
];
SysFun_KL15Monitor
.
SumCnt
=
0u
;
NMSysVol_Range
[
3
]
=
FUN_Vol
[
15
];
SysFun_KL15Monitor
.
DebounceTimer
=
0u
;
NMSysVol_Range
[
4
]
=
FUN_Vol
[
16
];
SysFun_KL15Monitor
.
ActVoltage
=
0u
;
NMSysVol_Range
[
5
]
=
FUN_Vol
[
17
];
SysFun_KL15Monitor
.
FinalSts
=
0u
;
NMSysVol_Range
[
6
]
=
FUN_Vol
[
18
];
SysFun_KL15Monitor
.
ActSts
=
0u
;
NMSysVol_Range
[
7
]
=
FUN_Vol
[
19
];
NMSysVol_Range
[
8
]
=
FUN_Vol
[
20
];
SysNM_KL30Monitor
.
SumCnt
=
0u
;
NMSysVol_Range
[
9
]
=
FUN_Vol
[
21
];
SysNM_KL30Monitor
.
DebounceTimer
=
0u
;
SysNM_KL30Monitor
.
ActVoltage
=
0u
;
t_NM_KL30_Debounce
=
FUN_Vol
[
22
];
SysNM_KL30Monitor
.
FinalSts
=
0u
;
t_NM_KL15_Debounce
=
FUN_Vol
[
23
];
SysNM_KL30Monitor
.
ActSts
=
0u
;
t_NM_KL30_Debounce_Cancel
=
FUN_Vol
[
24
];
SysNM_KL15Monitor
.
SumCnt
=
0u
;
t_FUN_KL30_Debounce_Cancel
=
FUN_Vol
[
25
];
SysNM_KL15Monitor
.
DebounceTimer
=
0u
;
SysNM_KL15Monitor
.
ActVoltage
=
0u
;
pfunction
.
SysGet_KL30_Valid
=
pfunc
->
SysGet_KL30_Valid
;
SysNM_KL15Monitor
.
FinalSts
=
0u
;
pfunction
.
SysGet_KL15_Valid
=
pfunc
->
SysGet_KL15_Valid
;
SysNM_KL15Monitor
.
ActSts
=
0u
;
pfunction
.
SysGet_KL30_value_Force
=
pfunc
->
SysGet_KL30_value_Force
;
pfunction
.
SysGet_KL15_value_Force
=
pfunc
->
SysGet_KL15_value_Force
;
if
(
t_NM_KL30_Debounce
==
0U
)
pfunction
.
SysGet_KL30_value
=
pfunc
->
SysGet_KL30_value
;
{
pfunction
.
SysGet_KL15_value
=
pfunc
->
SysGet_KL15_value
;
t_NM_KL30_Debounce
=
1000u
;
pfunction
.
SysGet_KL15Line
=
pfunc
->
SysGet_KL15Line
;
}
pfunction
.
COM_Delay
=
pfunc
->
COM_Delay
;
if
(
t_NM_KL15_Debounce
==
0U
)
pfunction
.
SysMonitorLogic
=
pfunc
->
SysMonitorLogic
;
{
t_NM_KL15_Debounce
=
2u
;
SetVolFlag
=
0x55u
;
}
}
if
(
t_FUN_KL30_Debounce
==
0U
)
{
void
System_Monitor_KL30Init
(
void
)
t_FUN_KL30_Debounce
=
1000u
;
{
}
SysWakeUpMode
=
0u
;
if
(
t_FUN_KL15_Debounce
==
0U
)
SysFun_KL30Monitor
.
SumCnt
=
0u
;
{
SysFun_KL30Monitor
.
DebounceTimer
=
0u
;
t_FUN_KL15_Debounce
=
2u
;
SysFun_KL30Monitor
.
ActVoltage
=
0u
;
}
SysFun_KL30Monitor
.
FinalSts
=
0u
;
SysFun_KL30Monitor
.
ActSts
=
0u
;
if
(
SetVolFlag
!=
0x55u
)
{
SysFun_KL15Monitor
.
SumCnt
=
0u
;
FUNSysVol_Range
[
0
]
=
Base_Vol
;
SysFun_KL15Monitor
.
DebounceTimer
=
0u
;
FUNSysVol_Range
[
1
]
=
ENTER_LOW_N_RANGE
;
SysFun_KL15Monitor
.
ActVoltage
=
0u
;
FUNSysVol_Range
[
2
]
=
EXIT_LOW_N_RANGE
;
SysFun_KL15Monitor
.
FinalSts
=
0u
;
FUNSysVol_Range
[
3
]
=
ENTER_LOW_Y_RANGE
;
SysFun_KL15Monitor
.
ActSts
=
0u
;
FUNSysVol_Range
[
4
]
=
EXIT_LOW_Y_RANGE
;
FUNSysVol_Range
[
5
]
=
EXIT_HIGH_Y_RANGE
;
SysNM_KL30Monitor
.
SumCnt
=
0u
;
FUNSysVol_Range
[
6
]
=
ENTER_HIGH_Y_RANGE
;
SysNM_KL30Monitor
.
DebounceTimer
=
0u
;
FUNSysVol_Range
[
7
]
=
EXIT_HIGH_N_RANGE
;
SysNM_KL30Monitor
.
ActVoltage
=
0u
;
FUNSysVol_Range
[
8
]
=
ENTER_HIGH_N_RANGE
;
SysNM_KL30Monitor
.
FinalSts
=
0u
;
FUNSysVol_Range
[
9
]
=
Top_Vol
;
SysNM_KL30Monitor
.
ActSts
=
0u
;
NMSysVol_Range
[
0
]
=
Base_Vol
;
SysNM_KL15Monitor
.
SumCnt
=
0u
;
NMSysVol_Range
[
1
]
=
ENTER_LOW_N_RANGE
;
SysNM_KL15Monitor
.
DebounceTimer
=
0u
;
NMSysVol_Range
[
2
]
=
EXIT_LOW_N_RANGE
;
SysNM_KL15Monitor
.
ActVoltage
=
0u
;
NMSysVol_Range
[
3
]
=
ENTER_LOW_Y_RANGE
;
SysNM_KL15Monitor
.
FinalSts
=
0u
;
NMSysVol_Range
[
4
]
=
EXIT_LOW_Y_RANGE
;
SysNM_KL15Monitor
.
ActSts
=
0u
;
NMSysVol_Range
[
5
]
=
EXIT_HIGH_Y_RANGE
;
NMSysVol_Range
[
6
]
=
ENTER_HIGH_Y_RANGE
;
if
(
SetVolFlag
!=
0x55u
)
NMSysVol_Range
[
7
]
=
EXIT_HIGH_N_RANGE
;
{
NMSysVol_Range
[
8
]
=
ENTER_HIGH_N_RANGE
;
t_NM_KL30_Debounce
=
1000u
;
NMSysVol_Range
[
9
]
=
Top_Vol
;
t_NM_KL15_Debounce
=
2u
;
SetVolFlag
=
0x55u
;
t_FUN_KL30_Debounce
=
1000u
;
}
t_FUN_KL15_Debounce
=
2u
;
}
t_NM_KL30_Debounce_Cancel
=
1000U
;
void
System_Monitor_WakeupInit
(
void
)
t_NM_KL15_Debounce_Cancel
=
2U
;
{
t_FUN_KL30_Debounce_Cancel
=
1000U
;
SysWakeUpMode
=
0u
;
t_FUN_KL15_Debounce_Cancel
=
2U
;
SysFun_KL30Monitor
.
SumCnt
=
0u
;
SysFun_KL30Monitor
.
DebounceTimer
=
0u
;
FUNSysVol_Range
[
0
]
=
Base_Vol
;
SysFun_KL30Monitor
.
ActVoltage
=
0u
;
FUNSysVol_Range
[
1
]
=
ENTER_LOW_N_RANGE
;
SysFun_KL30Monitor
.
FinalSts
=
0u
;
FUNSysVol_Range
[
2
]
=
EXIT_LOW_N_RANGE
;
SysFun_KL30Monitor
.
ActSts
=
0u
;
FUNSysVol_Range
[
3
]
=
ENTER_LOW_Y_RANGE
;
FUNSysVol_Range
[
4
]
=
EXIT_LOW_Y_RANGE
;
SysFun_KL15Monitor
.
SumCnt
=
0u
;
FUNSysVol_Range
[
5
]
=
EXIT_HIGH_Y_RANGE
;
SysFun_KL15Monitor
.
DebounceTimer
=
0u
;
FUNSysVol_Range
[
6
]
=
ENTER_HIGH_Y_RANGE
;
SysFun_KL15Monitor
.
ActVoltage
=
0u
;
FUNSysVol_Range
[
7
]
=
EXIT_HIGH_N_RANGE
;
SysFun_KL15Monitor
.
FinalSts
=
0u
;
FUNSysVol_Range
[
8
]
=
ENTER_HIGH_N_RANGE
;
SysFun_KL15Monitor
.
ActSts
=
0u
;
FUNSysVol_Range
[
9
]
=
Top_Vol
;
SysNM_KL30Monitor
.
SumCnt
=
0u
;
NMSysVol_Range
[
0
]
=
Base_Vol
;
SysNM_KL30Monitor
.
DebounceTimer
=
0u
;
NMSysVol_Range
[
1
]
=
ENTER_LOW_N_RANGE
;
SysNM_KL30Monitor
.
ActVoltage
=
0u
;
NMSysVol_Range
[
2
]
=
EXIT_LOW_N_RANGE
;
SysNM_KL30Monitor
.
FinalSts
=
0u
;
NMSysVol_Range
[
3
]
=
ENTER_LOW_Y_RANGE
;
SysNM_KL30Monitor
.
ActSts
=
0u
;
NMSysVol_Range
[
4
]
=
EXIT_LOW_Y_RANGE
;
NMSysVol_Range
[
5
]
=
EXIT_HIGH_Y_RANGE
;
SysNM_KL15Monitor
.
SumCnt
=
0u
;
NMSysVol_Range
[
6
]
=
ENTER_HIGH_Y_RANGE
;
SysNM_KL15Monitor
.
DebounceTimer
=
0u
;
NMSysVol_Range
[
7
]
=
EXIT_HIGH_N_RANGE
;
SysNM_KL15Monitor
.
ActVoltage
=
0u
;
NMSysVol_Range
[
8
]
=
ENTER_HIGH_N_RANGE
;
SysNM_KL15Monitor
.
FinalSts
=
0u
;
NMSysVol_Range
[
9
]
=
Top_Vol
;
SysNM_KL15Monitor
.
ActSts
=
0u
;
SetVolFlag
=
0x55u
;
}
if
(
t_NM_KL30_Debounce
==
0U
)
if
(
pfunction
.
COM_Delay
!=
((
void
*
)
0
)
)
{
{
t_NM_KL30_Debounce
=
1000u
;
pfunction
.
COM_Delay
(
260U
);
}
}
if
(
t_NM_KL15_Debounce
==
0U
)
System_Fast_WakeUp
(
);
{
}
t_NM_KL15_Debounce
=
2u
;
}
void
System_Monitor_WakeupInit
(
void
)
if
(
t_FUN_KL30_Debounce
==
0U
)
{
{
SysWakeUpMode
=
0u
;
t_FUN_KL30_Debounce
=
1000u
;
SysFun_KL30Monitor
.
SumCnt
=
0u
;
}
SysFun_KL30Monitor
.
DebounceTimer
=
0u
;
if
(
t_FUN_KL15_Debounce
==
0U
)
SysFun_KL30Monitor
.
ActVoltage
=
0u
;
{
SysFun_KL30Monitor
.
FinalSts
=
0u
;
t_FUN_KL15_Debounce
=
2u
;
SysFun_KL30Monitor
.
ActSts
=
0u
;
}
SysFun_KL15Monitor
.
SumCnt
=
0u
;
if
(
SetVolFlag
!=
0x55u
)
SysFun_KL15Monitor
.
DebounceTimer
=
0u
;
{
SysFun_KL15Monitor
.
ActVoltage
=
0u
;
FUNSysVol_Range
[
0
]
=
Base_Vol
;
SysFun_KL15Monitor
.
FinalSts
=
0u
;
FUNSysVol_Range
[
1
]
=
ENTER_LOW_N_RANGE
;
SysFun_KL15Monitor
.
ActSts
=
0u
;
FUNSysVol_Range
[
2
]
=
EXIT_LOW_N_RANGE
;
FUNSysVol_Range
[
3
]
=
ENTER_LOW_Y_RANGE
;
SysNM_KL30Monitor
.
SumCnt
=
0u
;
FUNSysVol_Range
[
4
]
=
EXIT_LOW_Y_RANGE
;
SysNM_KL30Monitor
.
DebounceTimer
=
0u
;
FUNSysVol_Range
[
5
]
=
EXIT_HIGH_Y_RANGE
;
SysNM_KL30Monitor
.
ActVoltage
=
0u
;
FUNSysVol_Range
[
6
]
=
ENTER_HIGH_Y_RANGE
;
SysNM_KL30Monitor
.
FinalSts
=
0u
;
FUNSysVol_Range
[
7
]
=
EXIT_HIGH_N_RANGE
;
SysNM_KL30Monitor
.
ActSts
=
0u
;
FUNSysVol_Range
[
8
]
=
ENTER_HIGH_N_RANGE
;
FUNSysVol_Range
[
9
]
=
Top_Vol
;
SysNM_KL15Monitor
.
SumCnt
=
0u
;
SysNM_KL15Monitor
.
DebounceTimer
=
0u
;
NMSysVol_Range
[
0
]
=
Base_Vol
;
SysNM_KL15Monitor
.
ActVoltage
=
0u
;
NMSysVol_Range
[
1
]
=
ENTER_LOW_N_RANGE
;
SysNM_KL15Monitor
.
FinalSts
=
0u
;
NMSysVol_Range
[
2
]
=
EXIT_LOW_N_RANGE
;
SysNM_KL15Monitor
.
ActSts
=
0u
;
NMSysVol_Range
[
3
]
=
ENTER_LOW_Y_RANGE
;
NMSysVol_Range
[
4
]
=
EXIT_LOW_Y_RANGE
;
if
(
SetVolFlag
!=
0x55u
)
NMSysVol_Range
[
5
]
=
EXIT_HIGH_Y_RANGE
;
{
NMSysVol_Range
[
6
]
=
ENTER_HIGH_Y_RANGE
;
t_NM_KL30_Debounce
=
1000u
;
NMSysVol_Range
[
7
]
=
EXIT_HIGH_N_RANGE
;
t_NM_KL15_Debounce
=
2u
;
NMSysVol_Range
[
8
]
=
ENTER_HIGH_N_RANGE
;
t_FUN_KL30_Debounce
=
1000u
;
NMSysVol_Range
[
9
]
=
Top_Vol
;
t_FUN_KL15_Debounce
=
2u
;
SetVolFlag
=
0x55u
;
}
t_NM_KL30_Debounce_Cancel
=
1000U
;
}
t_NM_KL15_Debounce_Cancel
=
2U
;
t_FUN_KL30_Debounce_Cancel
=
1000U
;
void
Sys_Status_Update_Service
(
void
)
t_FUN_KL15_Debounce_Cancel
=
2U
;
{
FUNSysVol_Range
[
0
]
=
Base_Vol
;
System_Fun_Process
();
FUNSysVol_Range
[
1
]
=
ENTER_LOW_N_RANGE
;
System_NM_Process
();
FUNSysVol_Range
[
2
]
=
EXIT_LOW_N_RANGE
;
Sys_LogicProcess
();
FUNSysVol_Range
[
3
]
=
ENTER_LOW_Y_RANGE
;
}
FUNSysVol_Range
[
4
]
=
EXIT_LOW_Y_RANGE
;
FUNSysVol_Range
[
5
]
=
EXIT_HIGH_Y_RANGE
;
void
System_Fast_WakeUp
(
void
)
FUNSysVol_Range
[
6
]
=
ENTER_HIGH_Y_RANGE
;
{
FUNSysVol_Range
[
7
]
=
EXIT_HIGH_N_RANGE
;
uint16_t
KL30_Voltage
=
0U
;
FUNSysVol_Range
[
8
]
=
ENTER_HIGH_N_RANGE
;
uint16_t
KL15_Voltage
=
0U
;
FUNSysVol_Range
[
9
]
=
Top_Vol
;
uint8_t
KL30_Valid
=
0U
;
uint8_t
KL15_Valid
=
0U
;
NMSysVol_Range
[
0
]
=
Base_Vol
;
uint16_t
Voltage
=
0U
;
NMSysVol_Range
[
1
]
=
ENTER_LOW_N_RANGE
;
uint8_t
NormalKL30Cnt
=
0U
;
NMSysVol_Range
[
2
]
=
EXIT_LOW_N_RANGE
;
uint8_t
abnormalKL30Cnt
=
0U
;
NMSysVol_Range
[
3
]
=
ENTER_LOW_Y_RANGE
;
uint8_t
AttemptCnt
=
0U
;
NMSysVol_Range
[
4
]
=
EXIT_LOW_Y_RANGE
;
NMSysVol_Range
[
5
]
=
EXIT_HIGH_Y_RANGE
;
AttemptCnt
=
0u
;
NMSysVol_Range
[
6
]
=
ENTER_HIGH_Y_RANGE
;
KL30_Voltage
=
Sys_Force_Read_KL30_Voltage
();
NMSysVol_Range
[
7
]
=
EXIT_HIGH_N_RANGE
;
KL15_Voltage
=
Sys_Force_Read_KL15_Voltage
();
NMSysVol_Range
[
8
]
=
ENTER_HIGH_N_RANGE
;
while
(
SysNM_KL30Monitor
.
FinalSts
==
0u
)
NMSysVol_Range
[
9
]
=
Top_Vol
;
{
SetVolFlag
=
0x55u
;
{
}
/*KL30 KL15电压采集*/
System_Fast_WakeUp
(
);
KL30_Voltage
=
Sys_Force_Read_KL30_Voltage
();
}
KL15_Voltage
=
Sys_Force_Read_KL15_Voltage
();
if
(
KL30_Voltage
>
KL15_Voltage
)
void
Sys_Status_Update_Service
(
void
)
{
{
Voltage
=
KL30_Voltage
;
System_Fun_Process
(
);
}
System_NM_Process
(
);
else
if
(
pfunction
.
SysMonitorLogic
!=
((
void
*
)
0
)
)
{
{
Voltage
=
KL15_Voltage
;
pfunction
.
SysMonitorLogic
(
);
}
}
}
if
((
Voltage
<=
FUNSysVol_Range
[
1
])
||
(
Voltage
>=
FUNSysVol_Range
[
8
]))
{
static
void
System_Fast_WakeUp
(
void
)
NormalKL30Cnt
=
0U
;
{
abnormalKL30Cnt
++
;
monitorlib_uint16_t
KL30_Voltage
;
}
monitorlib_uint16_t
KL15_Voltage
;
else
monitorlib_uint16_t
Voltage
;
{
monitorlib_uint8_t
NormalKL30Cnt
=
0U
;
NormalKL30Cnt
++
;
monitorlib_uint8_t
abnormalKL30Cnt
=
0U
;
abnormalKL30Cnt
=
0U
;
monitorlib_uint8_t
AttemptCnt
=
0U
;
}
AttemptCnt
=
0u
;
/*消抖次数设置*/
while
(
SysNM_KL30Monitor
.
FinalSts
==
0u
)
if
(
NormalKL30Cnt
>=
5U
)
{
{
if
(
pfunction
.
COM_Delay
!=
((
void
*
)
0
)
)
SysNM_KL30Monitor
.
FinalSts
=
5u
;
{
}
pfunction
.
COM_Delay
(
2U
);
if
(
abnormalKL30Cnt
>=
5U
)
}
{
/*KL30 KL15 voltage */
/*设置成HALT模式*/
if
(
pfunction
.
SysGet_KL30_value_Force
!=
(
void
*
)
0
)
SysNM_KL30Monitor
.
FinalSts
=
9u
;
{
}
KL30_Voltage
=
pfunction
.
SysGet_KL30_value_Force
(
);
}
}
Sys_BlockDelay
(
20U
);
/*1*50us*/
else
AttemptCnt
++
;
{
if
(
AttemptCnt
>=
100u
)
KL30_Voltage
=
0u
;
{
}
break
;
if
(
pfunction
.
SysGet_KL15_value_Force
!=
(
void
*
)
0
)
}
{
}
KL15_Voltage
=
pfunction
.
SysGet_KL15_value_Force
(
);
}
/*KL15 KL30采集结束,切换模式*/
else
if
((
SysNM_KL30Monitor
.
FinalSts
!=
0u
))
{
{
KL15_Voltage
=
0u
;
/*切换模式*/
}
SysWakeUpMode
=
0x55U
;
if
(
KL30_Voltage
>
KL15_Voltage
)
SysNM_KL15Monitor
.
FinalSts
=
System_LINE_KL15
();
{
SysNM_KL15Monitor
.
ActSts
=
System_LINE_KL15
();
Voltage
=
KL30_Voltage
;
SysFun_KL30Monitor
.
FinalSts
=
SysNM_KL30Monitor
.
FinalSts
;
}
SysFun_KL15Monitor
.
FinalSts
=
SysNM_KL15Monitor
.
ActSts
;
else
/*发送唤醒状态*/
{
Sys_LogicProcess
();
Voltage
=
KL15_Voltage
;
}
}
}
if
(
(
Voltage
<=
NMSysVol_Range
[
2
])
||
(
Voltage
>=
NMSysVol_Range
[
7
])
)
static
void
System_NM_Process
(
void
)
{
{
NormalKL30Cnt
=
0U
;
uint8_t
m8
;
abnormalKL30Cnt
++
;
static
uint16_t
DebpounceTimer
;
}
uint16_t
Voltage
;
else
uint8_t
VoltageKL30Valid
;
{
uint8_t
VoltageKL15Valid
;
NormalKL30Cnt
++
;
uint16_t
Voltage_KL15
;
abnormalKL30Cnt
=
0U
;
uint16_t
Voltage_KL30
;
}
AttemptCnt
++
;
if
(
SysNM_KL15Monitor
.
ActSts
!=
SysNM_KL15Monitor
.
FinalSts
)
if
(
AttemptCnt
>=
10u
)
{
{
SysNM_KL15Monitor
.
DebounceTimer
++
;
break
;
if
(
SysNM_KL15Monitor
.
DebounceTimer
>=
t_NM_KL15_Debounce
)
}
{
if
(
NormalKL30Cnt
>=
5U
)
SysNM_KL15Monitor
.
FinalSts
=
System_LINE_KL15
();
{
SysNM_KL15Monitor
.
DebounceTimer
=
0u
;
SysNM_KL30Monitor
.
FinalSts
=
5u
;
}
}
}
if
(
abnormalKL30Cnt
>=
5U
)
else
{
{
SysNM_KL30Monitor
.
FinalSts
=
9u
;
SysNM_KL15Monitor
.
DebounceTimer
=
0u
;
}
SysNM_KL15Monitor
.
ActSts
=
System_LINE_KL15
();
}
}
if
(
(
SysNM_KL30Monitor
.
FinalSts
!=
0u
)
)
VoltageKL30Valid
=
Sys_Read_KL30_Valid
();
{
VoltageKL15Valid
=
Sys_Read_KL15_Valid
();
SysWakeUpMode
=
0x55U
;
if
((
VoltageKL30Valid
==
1U
)
&&
(
VoltageKL15Valid
==
1U
))
if
(
pfunction
.
SysGet_KL15Line
!=
((
void
*
)
0
)
)
{
{
Voltage_KL15
=
Sys_Read_KL15_Voltage
();
SysNM_KL15Monitor
.
FinalSts
=
pfunction
.
SysGet_KL15Line
(
);
Voltage_KL30
=
Sys_Read_KL30_Voltage
();
SysNM_KL15Monitor
.
ActSts
=
pfunction
.
SysGet_KL15Line
(
);
if
(
Voltage_KL30
>
Voltage_KL15
)
}
{
else
Voltage
=
Voltage_KL30
;
{
}
SysNM_KL15Monitor
.
FinalSts
=
0u
;
else
SysNM_KL15Monitor
.
ActSts
=
0u
;
{
}
Voltage
=
Voltage_KL15
;
}
if
(
SysNM_KL30Monitor
.
SumCnt
<
50u
)
if
(
pfunction
.
SysMonitorLogic
!=
(
void
*
)
0
)
{
{
SysNM_KL30Monitor
.
ActVoltage
+=
Voltage
;
pfunction
.
SysMonitorLogic
(
);
SysNM_KL30Monitor
.
SumCnt
+=
1u
;
}
Voltage
=
(
uint16_t
)(
SysNM_KL30Monitor
.
ActVoltage
/
SysNM_KL30Monitor
.
SumCnt
);
}
}
}
else
{
static
void
System_NM_Process
(
void
)
SysNM_KL30Monitor
.
SumCnt
=
0u
;
{
SysNM_KL30Monitor
.
ActVoltage
=
0u
;
monitorlib_uint8_t
m8
;
SysNM_KL30Monitor
.
ActVoltage
+=
Voltage
;
static
monitorlib_uint16_t
DebpounceTimer
;
SysNM_KL30Monitor
.
SumCnt
+=
1u
;
monitorlib_uint16_t
Voltage
;
Voltage
=
(
uint16_t
)(
SysNM_KL30Monitor
.
ActVoltage
/
SysNM_KL30Monitor
.
SumCnt
);
monitorlib_uint8_t
VoltageKL30Valid
;
}
monitorlib_uint8_t
VoltageKL15Valid
;
monitorlib_uint16_t
Voltage_KL15
;
m8
=
System_Calc_NMRange
(
Voltage
);
monitorlib_uint16_t
Voltage_KL30
;
if
(
SysNM_KL30Monitor
.
ActSts
==
m8
)
{
if
(
pfunction
.
SysGet_KL15Line
!=
((
void
*
)
0
)
)
SysNM_KL30Monitor
.
DebounceTimer
++
;
{
if
(
SysNM_KL15Monitor
.
ActSts
==
pfunction
.
SysGet_KL15Line
(
)
)
/*计时累计时间1000*2ms*/
{
if
(
SysNM_KL30Monitor
.
DebounceTimer
>=
t_NM_KL30_Debounce
)
if
(
SysNM_KL15Monitor
.
DebounceTimer
<
t_NM_KL15_Debounce
)
{
{
SysNM_KL30Monitor
.
DebounceTimer
=
0U
;
SysNM_KL15Monitor
.
DebounceTimer
++
;
DebpounceTimer
=
0u
;
}
if
(
SysNM_KL30Monitor
.
FinalSts
==
9u
)
/* 高压 */
else
{
{
if
((
m8
==
9u
)
||
(
m8
==
8u
))
SysNM_KL15Monitor
.
FinalSts
=
SysNM_KL15Monitor
.
ActSts
;
{
}
SysNM_KL30Monitor
.
FinalSts
=
9u
;
}
}
else
else
{
{
SysNM_KL15Monitor
.
DebounceTimer
=
0u
;
SysNM_KL30Monitor
.
FinalSts
=
m8
;
SysNM_KL15Monitor
.
ActSts
=
pfunction
.
SysGet_KL15Line
(
);
}
}
}
}
if
(
SysNM_KL30Monitor
.
FinalSts
==
1u
)
/* 低压 */
else
{
{
if
((
m8
==
1u
)
||
(
m8
==
2u
))
SysNM_KL15Monitor
.
FinalSts
=
0u
;
{
SysNM_KL15Monitor
.
ActSts
=
0u
;
SysNM_KL30Monitor
.
FinalSts
=
1u
;
SysNM_KL15Monitor
.
DebounceTimer
=
0u
;
}
}
else
{
if
(
pfunction
.
SysGet_KL30_Valid
!=
(
void
*
)
0
)
SysNM_KL30Monitor
.
FinalSts
=
m8
;
{
}
VoltageKL30Valid
=
pfunction
.
SysGet_KL30_Valid
(
);
}
}
/*非高低压*/
else
if
((
SysNM_KL30Monitor
.
FinalSts
!=
1u
)
&&
(
SysNM_KL30Monitor
.
FinalSts
!=
9u
))
{
{
VoltageKL30Valid
=
0u
;
SysNM_KL30Monitor
.
FinalSts
=
m8
;
}
}
}
if
(
pfunction
.
SysGet_KL15_Valid
!=
(
void
*
)
0
)
}
{
else
VoltageKL15Valid
=
pfunction
.
SysGet_KL15_Valid
(
);
{
}
/*计时时间清除*/
else
SysNM_KL30Monitor
.
DebounceTimer
=
0U
;
{
DebpounceTimer
++
;
VoltageKL15Valid
=
0u
;
if
(
DebpounceTimer
>=
5u
)
}
{
DebpounceTimer
=
0u
;
if
(
(
VoltageKL30Valid
==
1U
)
&&
(
VoltageKL15Valid
==
1U
)
)
SysNM_KL30Monitor
.
ActSts
=
m8
;
{
}
if
(
pfunction
.
SysGet_KL15_value
!=
((
void
*
)
0
)
)
}
{
}
Voltage_KL15
=
pfunction
.
SysGet_KL15_value
(
);
}
}
else
static
void
System_Fun_Process
(
void
)
{
{
Voltage_KL15
=
0u
;
uint8_t
m8
;
}
uint8_t
VoltageKL30Valid
;
uint8_t
VoltageKL15Valid
;
if
(
pfunction
.
SysGet_KL15_value
!=
((
void
*
)
0
)
)
uint16_t
Voltage
;
{
uint16_t
Voltage_KL15
;
Voltage_KL30
=
pfunction
.
SysGet_KL30_value
(
);
uint16_t
Voltage_KL30
;
}
static
uint16_t
DebpounceTimer
;
else
{
if
(
SysFun_KL15Monitor
.
ActSts
!=
SysFun_KL15Monitor
.
FinalSts
)
Voltage_KL30
=
0u
;
{
}
SysFun_KL15Monitor
.
DebounceTimer
++
;
if
(
SysFun_KL15Monitor
.
DebounceTimer
>=
t_FUN_KL15_Debounce
)
if
(
Voltage_KL30
>
Voltage_KL15
)
{
{
SysFun_KL15Monitor
.
FinalSts
=
System_LINE_KL15
();
Voltage
=
Voltage_KL30
;
SysFun_KL15Monitor
.
DebounceTimer
=
0u
;
}
}
else
}
{
else
Voltage
=
Voltage_KL15
;
{
}
SysFun_KL15Monitor
.
DebounceTimer
=
0u
;
if
(
SysNM_KL30Monitor
.
SumCnt
<
50u
)
SysFun_KL15Monitor
.
ActSts
=
System_LINE_KL15
();
{
}
SysNM_KL30Monitor
.
ActVoltage
+=
Voltage
;
SysNM_KL30Monitor
.
SumCnt
+=
1u
;
VoltageKL30Valid
=
Sys_Read_KL30_Valid
();
Voltage
=
(
monitorlib_uint16_t
)(
SysNM_KL30Monitor
.
ActVoltage
/
SysNM_KL30Monitor
.
SumCnt
);
VoltageKL15Valid
=
Sys_Read_KL15_Valid
();
}
else
if
((
VoltageKL30Valid
==
1U
)
&&
(
VoltageKL15Valid
==
1U
))
{
{
SysNM_KL30Monitor
.
SumCnt
=
0u
;
Voltage_KL15
=
Sys_Read_KL15_Voltage
();
SysNM_KL30Monitor
.
ActVoltage
=
0u
;
Voltage_KL30
=
Sys_Read_KL30_Voltage
();
SysNM_KL30Monitor
.
ActVoltage
+=
Voltage
;
if
(
Voltage_KL30
>
Voltage_KL15
)
SysNM_KL30Monitor
.
SumCnt
+=
1u
;
{
Voltage
=
(
monitorlib_uint16_t
)(
SysNM_KL30Monitor
.
ActVoltage
/
SysNM_KL30Monitor
.
SumCnt
);
Voltage
=
Voltage_KL30
;
}
}
else
m8
=
System_Calc_NMRange
(
Voltage
);
{
if
(
SysNM_KL30Monitor
.
ActSts
==
m8
)
Voltage
=
Voltage_KL15
;
{
}
switch
(
SysNM_KL30Monitor
.
FinalSts
)
if
(
SysFun_KL30Monitor
.
SumCnt
<
50u
)
{
{
case
0
:
SysFun_KL30Monitor
.
ActVoltage
+=
Voltage
;
case
1
:
SysFun_KL30Monitor
.
SumCnt
+=
1u
;
case
9
:
Voltage
=
(
uint16_t
)(
SysFun_KL30Monitor
.
ActVoltage
/
SysFun_KL30Monitor
.
SumCnt
);
t_NM_KL30_timer
=
t_NM_KL30_Debounce_Cancel
;
}
break
;
else
{
default:
SysFun_KL30Monitor
.
SumCnt
=
0u
;
t_NM_KL30_timer
=
t_NM_KL30_Debounce
;
SysFun_KL30Monitor
.
ActVoltage
=
0u
;
break
;
SysFun_KL30Monitor
.
ActVoltage
+=
Voltage
;
}
SysFun_KL30Monitor
.
SumCnt
+=
1u
;
if
(
SysNM_KL30Monitor
.
DebounceTimer
<
t_NM_KL30_timer
)
/*40202-8*/
Voltage
=
(
uint16_t
)(
SysFun_KL30Monitor
.
ActVoltage
/
SysFun_KL30Monitor
.
SumCnt
);
{
}
SysNM_KL30Monitor
.
DebounceTimer
++
;
}
m8
=
System_Calc_FunRange
(
Voltage
);
else
{
if
(
SysFun_KL30Monitor
.
ActSts
==
m8
)
DebpounceTimer
=
0u
;
{
if
(
SysNM_KL30Monitor
.
FinalSts
==
9u
)
/* 高压 */
SysFun_KL30Monitor
.
DebounceTimer
++
;
{
DebpounceTimer
=
0u
;
if
(
(
m8
==
9u
)
||
(
m8
==
8u
)
)
/*计时累计时间1000*2ms*/
{
if
(
SysFun_KL30Monitor
.
DebounceTimer
>=
t_FUN_KL30_Debounce
)
/*40202-8*/
SysNM_KL30Monitor
.
FinalSts
=
9u
;
/** 维持不变 **/
{
}
SysFun_KL30Monitor
.
DebounceTimer
=
0U
;
else
{
if
(
SysFun_KL30Monitor
.
FinalSts
>=
7u
)
/* 高压 */
SysNM_KL30Monitor
.
FinalSts
=
m8
;
/**退出*/
{
}
if
((
m8
==
9u
)
||
(
m8
==
8u
)
||
(
m8
==
7u
))
}
{
if
(
SysNM_KL30Monitor
.
FinalSts
==
1u
)
/* 低压 */
SysFun_KL30Monitor
.
FinalSts
=
9u
;
{
SysFun_KL15Monitor
.
FinalSts
=
0u
;
if
(
(
m8
==
1u
)
||
(
m8
==
2u
)
)
}
{
else
SysNM_KL30Monitor
.
FinalSts
=
1u
;
/** 维持不变 */
{
}
SysFun_KL30Monitor
.
FinalSts
=
m8
;
else
}
{
}
SysNM_KL30Monitor
.
FinalSts
=
m8
;
/**退出*/
if
(
SysFun_KL30Monitor
.
FinalSts
==
1u
)
/* 低压 */
}
{
}
if
((
m8
==
1u
)
||
(
m8
==
2u
))
/* 非高低压 */
{
if
(
(
SysNM_KL30Monitor
.
FinalSts
!=
1u
)
&&
(
SysNM_KL30Monitor
.
FinalSts
!=
9u
)
)
SysFun_KL30Monitor
.
FinalSts
=
1u
;
{
SysFun_KL15Monitor
.
FinalSts
=
0u
;
SysNM_KL30Monitor
.
FinalSts
=
m8
;
/** 进入*/
}
}
else
}
{
}
SysFun_KL30Monitor
.
FinalSts
=
m8
;
else
}
{
}
/* 计时时间清除 */
/*非高低压*/
SysNM_KL30Monitor
.
DebounceTimer
=
0U
;
if
((
SysFun_KL30Monitor
.
FinalSts
!=
1u
)
&&
(
SysFun_KL30Monitor
.
FinalSts
<
7u
))
DebpounceTimer
++
;
{
if
(
DebpounceTimer
>=
5u
)
SysFun_KL30Monitor
.
FinalSts
=
m8
;
{
}
DebpounceTimer
=
0u
;
}
SysNM_KL30Monitor
.
ActSts
=
m8
;
}
}
else
}
{
}
/*计时时间清除*/
}
SysFun_KL30Monitor
.
DebounceTimer
=
0U
;
DebpounceTimer
++
;
static
void
System_Fun_Process
(
void
)
if
(
DebpounceTimer
>=
5u
)
{
{
monitorlib_uint8_t
m8
;
DebpounceTimer
=
0u
;
monitorlib_uint8_t
VoltageKL30Valid
;
SysFun_KL30Monitor
.
ActSts
=
m8
;
monitorlib_uint8_t
VoltageKL15Valid
;
}
monitorlib_uint16_t
Voltage
;
}
monitorlib_uint16_t
Voltage_KL15
;
}
monitorlib_uint16_t
Voltage_KL30
;
/*
static
monitorlib_uint16_t
DebpounceTimer
;
else
{
if
(
pfunction
.
SysGet_KL15Line
!=
((
void
*
)
0
)
)
SysFun_KL30Monitor.FinalSts = 1u;
{
SysFun_KL15Monitor.FinalSts = 0u;
if
(
SysFun_KL15Monitor
.
ActSts
==
pfunction
.
SysGet_KL15Line
(
)
)
}*/
{
}
if
(
SysFun_KL15Monitor
.
DebounceTimer
<
t_FUN_KL15_Debounce
)
{
uint8_t
System_NM_KL30_Status_Get
(
void
)
SysFun_KL15Monitor
.
DebounceTimer
++
;
{
}
return
SysNM_KL30Monitor
.
FinalSts
;
else
}
{
uint8_t
System_NM_KL15_Status_Get
(
void
)
SysFun_KL15Monitor
.
FinalSts
=
SysFun_KL15Monitor
.
ActSts
;
{
}
return
SysNM_KL15Monitor
.
FinalSts
;
}
}
else
{
uint8_t
System_FUN_KL30_Status_Get
(
void
)
SysFun_KL15Monitor
.
DebounceTimer
=
0u
;
{
SysFun_KL15Monitor
.
ActSts
=
pfunction
.
SysGet_KL15Line
(
);
return
SysFun_KL30Monitor
.
FinalSts
;
}
}
}
uint8_t
System_FUN_KL15_Status_Get
(
void
)
else
{
{
return
SysFun_KL15Monitor
.
FinalSts
;
SysFun_KL15Monitor
.
DebounceTimer
=
0u
;
}
SysFun_KL15Monitor
.
FinalSts
=
0u
;
SysFun_KL15Monitor
.
ActSts
=
0u
;
}
if
(
pfunction
.
SysGet_KL30_Valid
!=
((
void
*
)
0
)
)
{
VoltageKL30Valid
=
pfunction
.
SysGet_KL30_Valid
(
);
}
else
{
VoltageKL30Valid
=
0u
;
}
if
(
pfunction
.
SysGet_KL15_Valid
!=
((
void
*
)
0
)
)
{
VoltageKL15Valid
=
pfunction
.
SysGet_KL15_Valid
(
);
}
else
{
VoltageKL15Valid
=
0u
;
}
if
(
(
VoltageKL30Valid
==
1U
)
&&
(
VoltageKL15Valid
==
1U
)
)
{
if
(
pfunction
.
SysGet_KL15_value
!=
((
void
*
)
0
)
)
{
Voltage_KL15
=
pfunction
.
SysGet_KL15_value
(
);
}
else
{
Voltage_KL15
=
0u
;
}
if
(
pfunction
.
SysGet_KL30_value
!=
((
void
*
)
0
)
)
{
Voltage_KL30
=
pfunction
.
SysGet_KL30_value
(
);
}
else
{
Voltage_KL30
=
0u
;
}
if
(
Voltage_KL30
>
Voltage_KL15
)
{
Voltage
=
Voltage_KL30
;
}
else
{
Voltage
=
Voltage_KL15
;
}
if
(
SysFun_KL30Monitor
.
SumCnt
<
50u
)
{
SysFun_KL30Monitor
.
ActVoltage
+=
Voltage
;
SysFun_KL30Monitor
.
SumCnt
+=
1u
;
Voltage
=
(
monitorlib_uint16_t
)(
SysFun_KL30Monitor
.
ActVoltage
/
SysFun_KL30Monitor
.
SumCnt
);
}
else
{
SysFun_KL30Monitor
.
SumCnt
=
0u
;
SysFun_KL30Monitor
.
ActVoltage
=
0u
;
SysFun_KL30Monitor
.
ActVoltage
+=
Voltage
;
SysFun_KL30Monitor
.
SumCnt
+=
1u
;
Voltage
=
(
monitorlib_uint16_t
)(
SysFun_KL30Monitor
.
ActVoltage
/
SysFun_KL30Monitor
.
SumCnt
);
}
m8
=
System_Calc_FunRange
(
Voltage
);
if
(
SysFun_KL30Monitor
.
ActSts
==
m8
)
{
DebpounceTimer
=
0u
;
switch
(
SysFun_KL30Monitor
.
FinalSts
)
{
case
0
:
case
1
:
case
3
:
case
7
:
case
9
:
t_FUN_KL30_timer
=
t_FUN_KL30_Debounce_Cancel
;
break
;
default:
t_FUN_KL30_timer
=
t_FUN_KL30_Debounce
;
break
;
}
/* 计时累计时间1000*2ms */
if
(
SysFun_KL30Monitor
.
DebounceTimer
<
t_FUN_KL30_timer
)
/*40202-8*/
{
SysFun_KL30Monitor
.
DebounceTimer
++
;
}
else
{
if
(
SysFun_KL30Monitor
.
FinalSts
>
7u
)
/* 高压 */
{
if
(
(
m8
==
9u
)
||
(
m8
==
8u
)
||
(
m8
==
7u
)
)
{
SysFun_KL30Monitor
.
FinalSts
=
9u
;
SysFun_KL15Monitor
.
FinalSts
=
0u
;
}
else
{
SysFun_KL30Monitor
.
FinalSts
=
m8
;
}
}
if
(
SysFun_KL30Monitor
.
FinalSts
==
1u
)
/* 低压 */
{
if
(
(
m8
==
1u
)
||
(
m8
==
2u
)
)
{
SysFun_KL30Monitor
.
FinalSts
=
1u
;
SysFun_KL15Monitor
.
FinalSts
=
0u
;
}
else
{
SysFun_KL30Monitor
.
FinalSts
=
m8
;
}
}
/* 非高低压 */
if
(
(
SysFun_KL30Monitor
.
FinalSts
!=
1u
)
&&
(
SysFun_KL30Monitor
.
FinalSts
<=
7u
)
)
{
SysFun_KL30Monitor
.
FinalSts
=
m8
;
}
}
}
else
{
/* 计时时间清除 */
SysFun_KL30Monitor
.
DebounceTimer
=
0U
;
DebpounceTimer
++
;
if
(
DebpounceTimer
>=
5u
)
{
DebpounceTimer
=
0u
;
SysFun_KL30Monitor
.
ActSts
=
m8
;
}
}
}
/*
else
{
SysFun_KL30Monitor.FinalSts = 1u;
SysFun_KL15Monitor.FinalSts = 0u;
}*/
}
monitorlib_uint8_t
System_NM_KL30_Status_Get
(
void
)
{
return
SysNM_KL30Monitor
.
FinalSts
;
}
monitorlib_uint8_t
System_NM_KL15_Status_Get
(
void
)
{
return
SysNM_KL15Monitor
.
FinalSts
;
}
monitorlib_uint8_t
System_FUN_KL30_Status_Get
(
void
)
{
return
SysFun_KL30Monitor
.
FinalSts
;
}
monitorlib_uint8_t
System_FUN_KL15_Status_Get
(
void
)
{
return
SysFun_KL15Monitor
.
FinalSts
;
}
monitorlib_uint16_t
Get_Sysmonitor_Version
(
void
)
{
return
0x0002u
;
}
source/Application/APP/PowerManagement/System_Monitor.h
View file @
fa5f01c5
#ifndef SYSTEM_MONITOR_H
#ifndef SYSTEM__MONITOR__H
#define SYSTEM_MONITOR_H
#define SYSTEM__MONITOR__H
#include "System_Monitor.h"
/* #define Platform_16Bit
#include "TYW_stdint.h"
#define Platform_32Bit*/
#ifdef Platform_16Bit
typedef
struct
#define monitorlib_uint8_t unsigned char
{
#define monitorlib_uint16_t unsigned int
uint8_t
SumCnt
;
#define monitorlib_uint32_t unsigned long
uint16_t
DebounceTimer
;
uint32_t
ActVoltage
;
#else
uint8_t
FinalSts
;
uint8_t
ActSts
;
#define monitorlib_uint8_t unsigned char
}
MonitorStruct
;
#define monitorlib_uint16_t unsigned short
#define monitorlib_uint32_t unsigned int
#define monitorlib_uint64_t unsigned long long
/*
#endif
0 ----1st-------6500 不可运行 1
6500 ----2st-------7000 回差段 2
/*
0 ----1st-------6500 不可运行 1
7000 ----3st-------9000 低压段 3
6500 ----2st-------7000 回差段 2
9000 ----4st-------9500 回差段 4
9500-----5st------16000 正常段 5
7000 ----3st-------9000 低压段 3
16000----6st------16500 回差段 6
9000 ----4st-------9500 回差段 4
9500-----5st------16000 正常段 5
16500----7st------18000 高压段 7
16000----6st------16500 回差段 6
18000----8st------18500 回差段 8
18500----9st------65535 高压段 9
16500----7st------18000 高压段 7
18000----8st------18500 回差段 8
0-----6.5 不可运行--ALL----------限制
18500----9st------65535 高压段 9
6.5-----9 除电机外均可运行--------正常
9-----16.5 均可运行---------------正常
0-----6.5 不可运行--ALL----------限制
16.5-----18.5 只有CAN可运行----------限制
6.5-----9 除电机外均可运行--------正常
18.8-----65535 不可运行--ALL----------限制
9-----16.5 均可运行---------------正常
16.5-----18.5 只有CAN可运行----------限制
6.5-18.5 CAN 可运行区间
18.8-----65535 不可运行--ALL----------限制
*/
6.5-18.5 CAN 可运行区间
*/
typedef
monitorlib_uint8_t
(
*
Get_Voltage_Vaild
)(
void
);
/*电源运行状态*/
typedef
monitorlib_uint16_t
(
*
Get_Voltage_Value
)(
void
);
#define SYS_OPR_STAT_RUN ((System_FUN_KL30_Status_Get() > 1u)&&(System_FUN_KL30_Status_Get() < 7u ))
typedef
monitorlib_uint8_t
(
*
Get_LineInStatus
)(
void
);
#define SYS_OPR_STAT_HALT ((System_FUN_KL30_Status_Get() == 1u) || (System_FUN_KL30_Status_Get() >= 7u))
typedef
void
(
*
COMMON_Delay
)(
monitorlib_uint32_t
mMs
);
typedef
void
(
*
pfunLogic
)(
void
);
#define SYS_OPR_STAT_LIM_LVP (System_FUN_KL30_Status_Get() == 1U)
#define SYS_OPR_STAT_LIM_OVP (System_FUN_KL30_Status_Get() >= 7u)
typedef
struct
{
/*仪表工作状态*/
Get_Voltage_Vaild
SysGet_KL30_Valid
;
#define SYS_OPR_STAT_IGN_ON (System_FUN_KL15_Status_Get() == 1U)
Get_Voltage_Vaild
SysGet_KL15_Valid
;
#define SYS_OPR_STAT_IGN_OFF (System_FUN_KL15_Status_Get() == 0U)
Get_Voltage_Value
SysGet_KL30_value_Force
;
Get_Voltage_Value
SysGet_KL15_value_Force
;
Get_Voltage_Value
SysGet_KL30_value
;
/*网络管理电源工作状态*/
Get_Voltage_Value
SysGet_KL15_value
;
#define SYS_OPR_STAT_IGN_ON_NM (System_NM_KL15_Status_Get() == 1U)
Get_LineInStatus
SysGet_KL15Line
;
#define SYS_OPR_STAT_IGN_OFF_NM (System_NM_KL15_Status_Get() == 0U)
COMMON_Delay
COM_Delay
;
pfunLogic
SysMonitorLogic
;
/*网络管理电源运行状态*/
}
MonitorExt_st
;
#define SYS_OPR_STAT_RUN_NM ((System_NM_KL30_Status_Get() > 1u) && (System_NM_KL30_Status_Get() < 9u ))
#define SYS_OPR_STAT_HALT_NM ((System_NM_KL30_Status_Get() == 9u) || (System_NM_KL30_Status_Get() == 1u))
/* SYS RUN Status */
#define SYS_OPR_STAT_RUN ((System_FUN_KL30_Status_Get( ) > 1u) && (System_FUN_KL30_Status_Get( ) < 7u))
#define SYS_OPR_STAT_HALT ((System_FUN_KL30_Status_Get( ) == 3u) || (System_FUN_KL30_Status_Get( ) > 7u))
static
uint8_t
System_Calc_FunRange
(
uint16_t
u16Vol
);
static
uint8_t
System_Calc_NMRange
(
uint16_t
u16Vol
);
#define SYS_OPR_STAT_LIM_LVP (System_FUN_KL30_Status_Get( ) == 1U)
#define SYS_OPR_STAT_LIM_OVP (System_FUN_KL30_Status_Get( ) > 7u)
uint8_t
Read_KL30_ConvertFinish
(
void
);
/*fun status*/
static
void
System_Fun_Process
(
void
);
#define SYS_OPR_STAT_IGN_ON (System_FUN_KL15_Status_Get( ) == 1U)
static
void
System_NM_Process
(
void
);
#define SYS_OPR_STAT_IGN_OFF (System_FUN_KL15_Status_Get( ) == 0U)
void
Sys_LogicProcess
(
void
);
void
Sys_Status_Update_Service
(
void
);
/*nm run status*/
#define SYS_OPR_STAT_IGN_ON_NM (System_NM_KL15_Status_Get( ) == 1U)
uint16_t
Sys_Read_KL30_Voltage
(
void
);
#define SYS_OPR_STAT_IGN_OFF_NM (System_NM_KL15_Status_Get( ) == 0U)
uint16_t
Sys_Read_KL15_Voltage
(
void
);
uint8_t
Sys_Read_KL30_Valid
(
void
);
/*nm status*/
uint8_t
Sys_Read_KL15_Valid
(
void
);
#define SYS_OPR_STAT_RUN_NM ((System_NM_KL30_Status_Get( ) > 1u) && (System_NM_KL30_Status_Get( ) < 9u))
#define SYS_OPR_STAT_HALT_NM ((System_NM_KL30_Status_Get( ) == 9u) || (System_NM_KL30_Status_Get( ) == 1u))
uint16_t
Sys_Force_Read_KL30_Voltage
(
void
);
uint16_t
Sys_Force_Read_KL15_Voltage
(
void
);
monitorlib_uint8_t
Read_KL30_ConvertFinish
(
void
);
monitorlib_uint16_t
Get_Sysmonitor_Version
(
void
);
uint8_t
System_FUN_KL30_Status_Get
(
void
);
uint8_t
System_FUN_KL15_Status_Get
(
void
);
void
Sys_Status_Update_Service
(
void
);
uint8_t
System_NM_KL15_Status_Get
(
void
);
void
Sys_Set_Pata
(
const
monitorlib_uint16_t
FUN_Vol
[],
MonitorExt_st
*
pfunc
);
uint8_t
System_NM_KL30_Status_Get
(
void
);
void
System_Monitor_KL30Init
(
void
);
void
System_Monitor_WakeupInit
(
void
);
uint8_t
System_LINE_KL15
(
void
);
void
System_XHY_CheckWakeup
(
void
);
void
Sys_Set_DebounceTimer
(
uint16_t
u16NMKL30
,
uint16_t
u16NMKL15
,
uint16_t
u16FUNKL30
,
uint16_t
u16FUNKL15
);
monitorlib_uint8_t
System_FUN_KL30_Status_Get
(
void
);
/*void Sys_Set_VolRange(uint16_t FUN_Vol[], uint16_t NM_Vol[]);*/
monitorlib_uint8_t
System_FUN_KL15_Status_Get
(
void
);
void
Sys_Set_VolRange
(
const
uint16_t
FUN_Vol
[],
const
uint16_t
NM_Vol
[]);
monitorlib_uint8_t
System_NM_KL15_Status_Get
(
void
);
void
System_Monitor_KL30Init
(
void
);
monitorlib_uint8_t
System_NM_KL30_Status_Get
(
void
);
void
System_Monitor_WakeupInit
(
void
);
void
System_Fast_WakeUp
(
void
);
monitorlib_uint8_t
System_LINE_KL15
(
void
);
void
Sys_WakeUp_Init
(
void
);
void
Sys_KL30_Init
(
void
);
#endif
void
Sys_WakeUp_Init
(
void
);
void
Sys_BlockDelay
(
uint32_t
u32Ms
);
void
Sys_Rolling
(
void
);
void
Sys_RollingClear
(
void
);
uint32_t
Sys_Get_ms_Rolling_Counter
(
void
);
#endif
source/Application/APP/PowerManagement/System_Monitor_user.c
View file @
fa5f01c5
#include "GenDelay.h"
#include "GPIO.h"
#include "System_Monitor.h"
#include "ADC.h"
#include "RTE_ADC.h"
#include "System_Monitor.h"
#include "GPIO.h"
#include "Analog_Signals.h"
#include "dr7f701441.dvf.h"
#include "Watchdog.h"
#define u16Base_Vol 0u // 0
#include "COM_CAN.h"
#define u16ENTER_LOW_N_RANGE 6500U // 1
#define u16EXIT_LOW_N_RANGE 7000U // 2
#define u16Base_Vol 0u
#define u16ENTER_LOW_Y_RANGE 19500U // 3
#define u16EXIT_LOW_Y_RANGE 20000U // 4
#define u16ENTER_LOW_N_RANGE 6500U
#define u16EXIT_HIGH_Y_RANGE 32000U // 5
#define u16EXIT_LOW_N_RANGE 7000U
#define u16ENTER_HIGH_Y_RANGE 32500U // 6
#define u16EXIT_HIGH_N_RANGE 33000U // 7
#define u16ENTER_LOW_Y_RANGE 9000U
#define u16ENTER_HIGH_N_RANGE 33500U // 8
#define u16EXIT_LOW_Y_RANGE 9500U
#define u16Top_Vol 0xffffu
#define u16EXIT_HIGH_Y_RANGE 30000U
#pragma alignvar(8)
#define u16ENTER_HIGH_Y_RANGE 32000U
static
const
monitorlib_uint16_t
SysFun_Range
[
26u
]
=
{
u16Base_Vol
,
#define u16EXIT_HIGH_N_RANGE 31000U
#define u16ENTER_HIGH_N_RANGE 33000U
u16ENTER_LOW_N_RANGE
,
u16EXIT_LOW_N_RANGE
,
#define u16Top_Vol 0xffffu
u16ENTER_LOW_Y_RANGE
,
uint32_t
u32SysRollingCounter
;
u16EXIT_LOW_Y_RANGE
,
static
const
uint16_t
SysFun_Range
[
10u
]
=
u16EXIT_HIGH_Y_RANGE
,
{
u16ENTER_HIGH_Y_RANGE
,
u16Base_Vol
,
u16EXIT_HIGH_N_RANGE
,
u16ENTER_LOW_N_RANGE
,
u16ENTER_HIGH_N_RANGE
,
u16EXIT_LOW_N_RANGE
,
u16Top_Vol
,
u16ENTER_LOW_Y_RANGE
,
30000u
,
/**进入保护的时间*/
u16EXIT_LOW_Y_RANGE
,
10u
,
u16Base_Vol
,
u16EXIT_HIGH_Y_RANGE
,
u16ENTER_HIGH_Y_RANGE
,
u16ENTER_LOW_N_RANGE
,
u16EXIT_LOW_N_RANGE
,
u16EXIT_HIGH_N_RANGE
,
u16ENTER_HIGH_N_RANGE
,
u16ENTER_LOW_Y_RANGE
,
u16EXIT_LOW_Y_RANGE
,
u16Top_Vol
,
};
u16EXIT_HIGH_Y_RANGE
,
u16ENTER_HIGH_Y_RANGE
,
static
const
uint16_t
SysNM_Range
[
10u
]
=
{
u16EXIT_HIGH_N_RANGE
,
u16Base_Vol
,
u16ENTER_HIGH_N_RANGE
,
u16ENTER_LOW_N_RANGE
,
u16Top_Vol
,
u16EXIT_LOW_N_RANGE
,
10000u
,
10u
,
u16ENTER_LOW_Y_RANGE
,
10u
,
/**退出保护的时间*/
u16EXIT_LOW_Y_RANGE
,
10u
,
/**退出保护的时间*/
};
u16EXIT_HIGH_Y_RANGE
,
u16ENTER_HIGH_Y_RANGE
,
monitorlib_uint16_t
Sys_Read_KL30_Voltage_F
(
void
)
{
u16EXIT_HIGH_N_RANGE
,
monitorlib_uint16_t
u16Voltage
;
u16ENTER_HIGH_N_RANGE
,
u16Voltage
=
ADC_Conv_Single_Channel
(
ADC_CH_KL30_VOLTAGE
);
return
u16Voltage
;
u16Top_Vol
,
}
};
monitorlib_uint16_t
Sys_Read_KL15_Voltage_F
(
void
)
uint16_t
Sys_Force_Read_KL30_Voltage
(
void
)
{
{
monitorlib_uint16_t
u16Voltage
;
uint16_t
u16Voltage
;
u16Voltage
=
ADC_Conv_Single_Channel
(
ADC_CH_KL30_VOLTAGE
);
u16Voltage
=
(
uint16_t
)
RTE_ForceRead_KL30_Voltage
();
return
u16Voltage
;
return
u16Voltage
;
}
}
monitorlib_uint16_t
Sys_Read_KL30_Voltage
(
void
)
uint16_t
Sys_Force_Read_KL15_Voltage
(
void
)
{
{
monitorlib_uint16_t
u16Voltage
;
uint16_t
u16Voltage
;
u16Voltage
=
ADC_Read_Signal
(
ADC_CH_KL30_VOLTAGE
);
u16Voltage
=
(
uint16_t
)
RTE_ForceRead_KL15_Voltage
();
return
u16Voltage
;
return
u16Voltage
;
}
}
monitorlib_uint16_t
Sys_Read_KL15_Voltage
(
void
)
uint16_t
Sys_Read_KL30_Voltage
(
void
)
{
{
monitorlib_uint16_t
u16Voltage
;
uint16_t
u16Voltage
;
u16Voltage
=
ADC_Read_Signal
(
ADC_CH_KL30_VOLTAGE
);
u16Voltage
=
(
uint16_t
)
RTE_Read_KL30_Voltage
();
return
u16Voltage
;
return
u16Voltage
;
}
}
monitorlib_uint8_t
Sys_Read_KL30_Valid
(
void
)
uint16_t
Sys_Read_KL15_Voltage
(
void
)
{
{
monitorlib_uint8_t
u8Valid
;
uint16_t
u16Voltage
;
u8Valid
=
ADC_Read_Signal_Valid
(
ADC_CH_KL30_VOLTAGE
);
u16Voltage
=
(
uint16_t
)
RTE_Read_KL15_Voltage
();
return
u8Valid
;
return
u16Voltage
;
}
}
monitorlib_uint8_t
Sys_Read_KL15_Valid
(
void
)
{
uint8_t
Sys_Read_KL30_Valid
(
void
)
monitorlib_uint8_t
u8Valid
;
{
u8Valid
=
ADC_Read_Signal_Valid
(
ADC_CH_KL30_VOLTAGE
);
uint8_t
u8Valid
;
return
u8Valid
;
u8Valid
=
RTE_Read_KL30_Valid
();
}
return
u8Valid
;
}
monitorlib_uint8_t
System_LINE_KL15
(
void
)
{
uint8_t
Sys_Read_KL15_Valid
(
void
)
monitorlib_uint8_t
u8KL15
;
{
uint8_t
u8Valid
;
if
(
ADC_KL15_IN
==
1u
)
u8Valid
=
RTE_Read_KL15_Valid
();
{
return
u8Valid
;
u8KL15
=
1u
;
}
}
else
uint8_t
System_LINE_KL15
(
void
)
{
{
u8KL15
=
0u
;
uint8_t
u8KL15
;
}
u8KL15
=
ADC_KL15_IN
;
//15��Ӳ��
return
u8KL15
;
return
u8KL15
;
}
}
void
Common_BlockDelay
(
monitorlib_uint32_t
u32Ms
)
void
Sys_KL30_Init
(
void
)
{
{
Gen_TimeDelay
(
u32Ms
*
1000u
,
50u
);
Sys_Set_DebounceTimer
(
1000u
,
2u
,
1000u
,
80u
);
}
Sys_Set_VolRange
(
SysFun_Range
,
SysNM_Range
);
void
Sys_LogicProcess
(
void
)
System_Monitor_KL30Init
();
{
System_Fast_WakeUp
();
}
}
void
Sys_KL30_Init
(
void
)
void
Sys_WakeUp_Init
(
void
)
{
{
MonitorExt_st
m_st
;
Sys_Set_DebounceTimer
(
1000u
,
2u
,
1000u
,
80u
);
m_st
.
COM_Delay
=
Common_BlockDelay
;
Sys_Set_VolRange
(
SysFun_Range
,
SysNM_Range
);
m_st
.
SysGet_KL15Line
=
System_LINE_KL15
;
System_Monitor_WakeupInit
();
m_st
.
SysGet_KL15_Valid
=
Sys_Read_KL15_Valid
;
System_Fast_WakeUp
();
m_st
.
SysGet_KL30_Valid
=
Sys_Read_KL30_Valid
;
}
m_st
.
SysGet_KL15_value
=
Sys_Read_KL15_Voltage
;
m_st
.
SysGet_KL30_value
=
Sys_Read_KL30_Voltage
;
/*����������ִ�������*/
m_st
.
SysGet_KL15_value_Force
=
Sys_Read_KL15_Voltage_F
;
void
Sys_LogicProcess
(
void
)
m_st
.
SysGet_KL30_value_Force
=
Sys_Read_KL30_Voltage_F
;
{
m_st
.
SysMonitorLogic
=
Sys_LogicProcess
;
COM_NM_ACT
();
Sys_Set_Pata
(
SysFun_Range
,
&
m_st
);
}
System_Monitor_KL30Init
(
);
}
void
Sys_WakeUp_Init
(
void
)
void
Sys_Rolling
(
void
)
{
{
MonitorExt_st
m_st
;
if
(
u32SysRollingCounter
!=
65535ul
)
m_st
.
COM_Delay
=
Common_BlockDelay
;
{
m_st
.
SysGet_KL15Line
=
System_LINE_KL15
;
u32SysRollingCounter
++
;
m_st
.
SysGet_KL15_Valid
=
Sys_Read_KL15_Valid
;
}
m_st
.
SysGet_KL30_Valid
=
Sys_Read_KL30_Valid
;
else
m_st
.
SysGet_KL15_value
=
Sys_Read_KL15_Voltage
;
{
m_st
.
SysGet_KL30_value
=
Sys_Read_KL30_Voltage
;
u32SysRollingCounter
=
0
;
m_st
.
SysGet_KL15_value_Force
=
Sys_Read_KL15_Voltage_F
;
}
m_st
.
SysGet_KL30_value_Force
=
Sys_Read_KL30_Voltage_F
;
}
m_st
.
SysMonitorLogic
=
Sys_LogicProcess
;
Sys_Set_Pata
(
SysFun_Range
,
&
m_st
);
void
Sys_RollingClear
(
void
)
System_Monitor_WakeupInit
(
);
{
}
u32SysRollingCounter
=
0
;
}
uint32_t
Sys_Get_ms_Rolling_Counter
(
void
)
{
return
u32SysRollingCounter
;
}
void
Sys_BlockDelay
(
uint32_t
u32Ms
)
{
uint32_t
RocBackup
,
Counter
;
Sys_RollingClear
();
RocBackup
=
Sys_Get_ms_Rolling_Counter
();
do
{
WDT_Clear
();
Counter
=
Sys_Get_ms_Rolling_Counter
();
if
(
Counter
>=
RocBackup
)
{
Counter
-=
RocBackup
;
}
else
{
Counter
=
65535U
-
RocBackup
+
Counter
+
1U
;
}
}
while
(
Counter
<
u32Ms
);
}
\ No newline at end of file
source/Application/RTE/Common_Interface.c
View file @
fa5f01c5
...
@@ -673,31 +673,31 @@ uint16_t Common_ReadRollingCounter(void)
...
@@ -673,31 +673,31 @@ uint16_t Common_ReadRollingCounter(void)
return
SysRollingCounter
;
return
SysRollingCounter
;
}
}
void
Common_BlockDelay
(
uint16_t
m_MS
)
//
void Common_BlockDelay(uint16_t m_MS)
{
//
{
uint16_t
RocBackup
;
//
uint16_t RocBackup;
uint16_t
Counter
;
//
uint16_t Counter;
uint16_t
DIMCounter
;
//
uint16_t DIMCounter;
//
DIMCounter
=
m_MS
*
20u
;
//
DIMCounter = m_MS * 20u;
Common_RollingCounterClear
();
//
Common_RollingCounterClear();
RocBackup
=
Common_ReadRollingCounter
();
//
RocBackup = Common_ReadRollingCounter();
do
//
do
{
//
{
Counter
=
Common_ReadRollingCounter
();
//
Counter = Common_ReadRollingCounter();
//
if
(
Counter
>=
RocBackup
)
//
if (Counter >= RocBackup)
{
//
{
Counter
-=
RocBackup
;
//
Counter -= RocBackup;
}
//
}
else
//
else
{
//
{
Counter
=
65535u
-
RocBackup
+
Counter
+
1u
;
//
Counter = 65535u - RocBackup + Counter + 1u;
}
//
}
//
}
//
}
while
(
Counter
<
DIMCounter
);
//
while (Counter < DIMCounter);
}
//
}
uint32_t
Common_GetIgnOnTime
(
void
)
uint32_t
Common_GetIgnOnTime
(
void
)
{
{
...
...
source/Application/RTE/Common_Interface.h
View file @
fa5f01c5
...
@@ -30,7 +30,7 @@ uint32_t Common_GetIgnOffTime(void); /*ms*/
...
@@ -30,7 +30,7 @@ uint32_t Common_GetIgnOffTime(void); /*ms*/
void
Common_RollingCounterAdd
(
void
);
void
Common_RollingCounterAdd
(
void
);
void
Common_RollingCounterClear
(
void
);
void
Common_RollingCounterClear
(
void
);
void
Common_BlockDelay
(
uint16_t
m_MS
);
//
void Common_BlockDelay(uint16_t m_MS);
uint16_t
Common_ReadRollingCounter
(
void
);
uint16_t
Common_ReadRollingCounter
(
void
);
void
Set_Can18FF5510_FirstRecv_Event
(
void
);
void
Set_Can18FF5510_FirstRecv_Event
(
void
);
...
...
source/System/d1mx.ld
View file @
fa5f01c5
...
@@ -116,7 +116,7 @@ SECTIONS
...
@@ -116,7 +116,7 @@ SECTIONS
.tdata align(4) MAX_SIZE(0x0400) :>. /* initialized and zero-initialized data in TDA area */
.tdata align(4) MAX_SIZE(0x0400) :>. /* initialized and zero-initialized data in TDA area */
.ramfunc align(4) :>. /* program code in RAM area */
.ramfunc align(4) :>. /* program code in RAM area */
.stack align(4)
pad(0xC000)
:>. /* definition of stack size */
.stack align(4)
pad(0x4000)
:>. /* definition of stack size */
/* Renesas FDL data sections */
/* Renesas FDL data sections */
...
...
source/System/init.c
View file @
fa5f01c5
...
@@ -226,8 +226,8 @@ void Sys_Sleep_Init(void)
...
@@ -226,8 +226,8 @@ void Sys_Sleep_Init(void)
* \attention
* \attention
* \retval None
* \retval None
******************************************************************************/
******************************************************************************/
void
Sys_Wakeup_Init
(
void
)
//
void Sys_Wakeup_Init(void)
{
//
{
//
}
//
}
source/System/init.h
View file @
fa5f01c5
...
@@ -28,7 +28,7 @@ extern {
...
@@ -28,7 +28,7 @@ extern {
extern
void
Sys_Startup_Pre_Init
(
void
);
extern
void
Sys_Startup_Pre_Init
(
void
);
extern
void
Sys_Startup_Init
(
void
);
extern
void
Sys_Startup_Init
(
void
);
extern
void
Sys_Sleep_Init
(
void
);
extern
void
Sys_Sleep_Init
(
void
);
extern
void
Sys_Wakeup_Init
(
void
);
//
extern void Sys_Wakeup_Init(void);
#ifdef __cplusplus
#ifdef __cplusplus
}
}
...
...
source/System/tasks.c
View file @
fa5f01c5
...
@@ -323,7 +323,7 @@ void Sys_Exact_50us_Tasks(void)
...
@@ -323,7 +323,7 @@ void Sys_Exact_50us_Tasks(void)
{
{
static
uint32_t
PerCounter
=
0u
;
static
uint32_t
PerCounter
=
0u
;
GenDelay_Tick
();
GenDelay_Tick
();
Sys_Rolling
();
//
Sys_Rolling();
COM_NM_Process
();
COM_NM_Process
();
COM_TX_Process
();
COM_TX_Process
();
DoCAN_Timer_Update
(
50
);
DoCAN_Timer_Update
(
50
);
...
...
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