1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
#include "System_Monitor.h"
#include "RTE_ADC.h"
#include "GPIO.h"
#include "dr7f701441.dvf.h"
#include "Watchdog.h"
#include "COM_CAN.h"
#define u16Base_Vol 0u
#define u16ENTER_LOW_N_RANGE 6500U
#define u16EXIT_LOW_N_RANGE 7000U
#define u16ENTER_LOW_Y_RANGE 9000U
#define u16EXIT_LOW_Y_RANGE 9500U
#define u16EXIT_HIGH_Y_RANGE 30000U
#define u16ENTER_HIGH_Y_RANGE 32000U
#define u16EXIT_HIGH_N_RANGE 31000U
#define u16ENTER_HIGH_N_RANGE 33000U
#define u16Top_Vol 0xffffu
uint32_t u32SysRollingCounter;
static const uint16_t SysFun_Range[10u] =
{
u16Base_Vol,
u16ENTER_LOW_N_RANGE,
u16EXIT_LOW_N_RANGE,
u16ENTER_LOW_Y_RANGE,
u16EXIT_LOW_Y_RANGE,
u16EXIT_HIGH_Y_RANGE,
u16ENTER_HIGH_Y_RANGE,
u16EXIT_HIGH_N_RANGE,
u16ENTER_HIGH_N_RANGE,
u16Top_Vol,
};
static const uint16_t SysNM_Range[10u] =
{
u16Base_Vol,
u16ENTER_LOW_N_RANGE,
u16EXIT_LOW_N_RANGE,
u16ENTER_LOW_Y_RANGE,
u16EXIT_LOW_Y_RANGE,
u16EXIT_HIGH_Y_RANGE,
u16ENTER_HIGH_Y_RANGE,
u16EXIT_HIGH_N_RANGE,
u16ENTER_HIGH_N_RANGE,
u16Top_Vol,
};
uint16_t Sys_Force_Read_KL30_Voltage(void)
{
uint16_t u16Voltage;
u16Voltage = (uint16_t)RTE_ForceRead_KL30_Voltage();
return u16Voltage;
}
uint16_t Sys_Force_Read_KL15_Voltage(void)
{
uint16_t u16Voltage;
u16Voltage = (uint16_t)RTE_ForceRead_KL15_Voltage();
return u16Voltage;
}
uint16_t Sys_Read_KL30_Voltage(void)
{
uint16_t u16Voltage;
u16Voltage = (uint16_t)RTE_Read_KL30_Voltage();
return u16Voltage;
}
uint16_t Sys_Read_KL15_Voltage(void)
{
uint16_t u16Voltage;
u16Voltage = (uint16_t)RTE_Read_KL15_Voltage();
return u16Voltage;
}
uint8_t Sys_Read_KL30_Valid(void)
{
uint8_t u8Valid;
u8Valid = RTE_Read_KL30_Valid();
return u8Valid;
}
uint8_t Sys_Read_KL15_Valid(void)
{
uint8_t u8Valid;
u8Valid = RTE_Read_KL15_Valid();
return u8Valid;
}
uint8_t System_LINE_KL15(void)
{
uint8_t u8KL15;
u8KL15 = ADC_KL15_IN; //15��Ӳ��
return u8KL15;
}
void Sys_KL30_Init ( void)
{
Sys_Set_DebounceTimer(1000u, 2u, 1000u, 80u);
Sys_Set_VolRange(SysFun_Range, SysNM_Range);
System_Monitor_KL30Init();
System_Fast_WakeUp();
}
void Sys_WakeUp_Init ( void)
{
Sys_Set_DebounceTimer(1000u, 2u, 1000u, 80u);
Sys_Set_VolRange(SysFun_Range, SysNM_Range);
System_Monitor_WakeupInit();
System_Fast_WakeUp();
}
/*����������ִ�������*/
void Sys_LogicProcess(void)
{
COM_NM_ACT();
}
void Sys_Rolling(void)
{
if (u32SysRollingCounter != 65535ul)
{
u32SysRollingCounter++;
}
else
{
u32SysRollingCounter = 0;
}
}
void Sys_RollingClear(void)
{
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 );
}