2025-02-08 07:27:19 +00:00
|
|
|
|
C51 COMPILER V9.01 LOWPOWER 02/08/2025 15:18:20 PAGE 1
|
2025-02-06 07:35:32 +00:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
C51 COMPILER V9.01, COMPILATION OF MODULE LOWPOWER
|
|
|
|
|
OBJECT MODULE PLACED IN .\output\LowPower.obj
|
|
|
|
|
COMPILER INVOKED BY: D:\Tool\Keil\C51\BIN\C51.EXE code_app\LowPower.c LARGE OPTIMIZE(7,SIZE) REGFILE(.\output\MCUCore_Lo
|
|
|
|
|
-ad.ORC) BROWSE INTVECTOR(0X1000) INCDIR(.\header_app;.\header_drv;.\code_gasguage;.\code_classb\iec60730_lib\include;.\c
|
|
|
|
|
-ode_classb\iec60730_proc\Include;.\code_classb\config) DEBUG OBJECTEXTEND PRINT(.\output\LowPower.lst) OBJECT(.\output\L
|
|
|
|
|
-owPower.obj)
|
|
|
|
|
|
|
|
|
|
line level source
|
|
|
|
|
|
|
|
|
|
1 /********************************************************************************
|
|
|
|
|
2 Copyright (C), Sinowealth Electronic. Ltd.
|
|
|
|
|
3 Author: Sino
|
|
|
|
|
4 Version: V0.0
|
|
|
|
|
5 Date: 2020/04/26
|
|
|
|
|
6 History:
|
|
|
|
|
7 V2.0 2020/04/26 Preliminary
|
|
|
|
|
8 ********************************************************************************/
|
|
|
|
|
9 #include "Main.h"
|
|
|
|
|
10
|
|
|
|
|
11
|
|
|
|
|
12 BOOL bSleepFlg; //ϵͳ<CFB5><CDB3><EFBFBD><EFBFBD>IDLE<4C><45>־
|
|
|
|
|
13 BOOL bPDFlg;
|
|
|
|
|
14 BOOL bWakeupFlg;
|
|
|
|
|
15 BOOL bPCEnterPDFlg; //PC֪ͨϵͳ<CFB5><CDB3><EFBFBD><EFBFBD>SLEEP<45><50>־
|
|
|
|
|
16 U8 xdata ucSleepTimerCnt;
|
|
|
|
|
17 U8 xdata ucPDTimerCnt;
|
|
|
|
|
18 U8 xdata ucResetFlag;
|
|
|
|
|
19
|
|
|
|
|
20 /*************************************************************************************************
|
|
|
|
|
21 * <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: WakeUpProcess
|
|
|
|
|
22 * <20><> <20><>: <20><>
|
|
|
|
|
23 * <20><><EFBFBD><EFBFBD>ֵ: <20><>
|
|
|
|
|
24 * <20><> <20><>: <20><>Sleepģʽ<C4A3><CABD><EFBFBD>ѣ<EFBFBD><D1A3><EFBFBD>ͨ<EFBFBD><CDA8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ͱ<EFBFBD><CDB0><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
25 *************************************************************************************************/
|
|
|
|
|
26 void WakeUpProcess(void)
|
|
|
|
|
27 {
|
|
|
|
|
28 1 if(bWakeupFlg)
|
|
|
|
|
29 1 {
|
|
|
|
|
30 2 bWakeupFlg = 0;
|
|
|
|
|
31 2 if(bSleepFlg)
|
|
|
|
|
32 2 {
|
|
|
|
|
33 3 McuClockSet(MCU_CLK_24MHz);
|
|
|
|
|
34 3 IrqEn();
|
|
|
|
|
35 3
|
|
|
|
|
36 3 bSleepFlg = 0;
|
|
|
|
|
37 3 ucSleepTimerCnt = 0;
|
|
|
|
|
38 3 Delay1ms(1);
|
|
|
|
|
39 3
|
|
|
|
|
40 3 #if (UART0_DEFINE != 0)
|
|
|
|
|
41 3 IrqUart0En(); //<2F><><EFBFBD><EFBFBD>uart0<74>ж<EFBFBD>
|
|
|
|
|
42 3 #endif
|
|
|
|
|
43 3 IrqTimer3En(); //<2F><><EFBFBD><EFBFBD>Timer3<72>ж<EFBFBD>
|
|
|
|
|
44 3 McuTwiEn(); //<2F><><EFBFBD><EFBFBD>MCU Twiģ<69><C4A3>
|
|
|
|
|
45 3
|
|
|
|
|
46 3 AfeAlarmDis(AFE_ALARM_SC | AFE_ALARM_OV | AFE_ALARM_CD);
|
|
|
|
|
47 3 AfeTempADCEn(); //<2F><><EFBFBD><EFBFBD>AFE<46>¶Ȳɼ<C8B2>
|
|
|
|
|
48 3 AfeWDTEn(); //<2F><><EFBFBD><EFBFBD>AFE WDT
|
|
|
|
|
49 3 }
|
|
|
|
|
50 2 ucSleepTimerCnt = 0;
|
|
|
|
|
51 2 ucPDTimerCnt = 0;
|
|
|
|
|
52 2 ucUart0TimeoutCnt = 0;
|
2025-02-08 07:27:19 +00:00
|
|
|
|
C51 COMPILER V9.01 LOWPOWER 02/08/2025 15:18:20 PAGE 2
|
2025-02-06 07:35:32 +00:00
|
|
|
|
|
|
|
|
|
53 2 ucUart1TimeoutCnt = 0;
|
|
|
|
|
54 2 ucUart2TimeoutCnt = 0;
|
|
|
|
|
55 2 }
|
|
|
|
|
56 1 }
|
|
|
|
|
57
|
|
|
|
|
58
|
|
|
|
|
59 /*************************************************************************************************
|
|
|
|
|
60 * <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: SystemIntoPD
|
|
|
|
|
61 * <20><> <20><>: <20><>
|
|
|
|
|
62 * <20><><EFBFBD><EFBFBD>ֵ: <20><>
|
|
|
|
|
63 * <20><> <20><>: ϵͳ<CFB5><CDB3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ģʽ
|
|
|
|
|
64 *************************************************************************************************/
|
|
|
|
|
65 void SystemIntoPD(void)
|
|
|
|
|
66 {
|
|
|
|
|
67 1 while(1)
|
|
|
|
|
68 1 {
|
|
|
|
|
69 2 McuWDTClear(); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ź<EFBFBD>
|
|
|
|
|
70 2
|
|
|
|
|
71 2 IrqDis(); //<2F>ر<EFBFBD><D8B1>ж<EFBFBD>Դ
|
|
|
|
|
72 2 // LEDAllOff(); //<2F>ر<EFBFBD>LED<45><44>ʾ
|
|
|
|
|
73 2 BlueToothPowerDis(); //<2F>ر<EFBFBD><D8B1><EFBFBD><EFBFBD><EFBFBD>ģ<EFBFBD><C4A3>
|
|
|
|
|
74 2 AFEMosCtl(0); //<2F>ر<EFBFBD>MOS<4F><53><EFBFBD><EFBFBD>
|
|
|
|
|
75 2
|
|
|
|
|
76 2 AFEEnterPD(); //<2F>ر<EFBFBD>3.3V<EFBFBD><EFBFBD>Դ
|
|
|
|
|
77 2 }
|
|
|
|
|
78 1 }
|
|
|
|
|
79
|
|
|
|
|
80
|
|
|
|
|
81 /*************************************************************************************************
|
|
|
|
|
82 * <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: SystemIntoSleep
|
|
|
|
|
83 * <20><> <20><>: <20><>
|
|
|
|
|
84 * <20><><EFBFBD><EFBFBD>ֵ: <20><>
|
|
|
|
|
85 * <20><> <20><>: <20><EFBFBD><CDB9>Ĵ<EFBFBD><C4B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>IDLE<4C><45><EFBFBD><EFBFBD>PD
|
|
|
|
|
86 *************************************************************************************************/
|
|
|
|
|
87 void SystemIntoSleep(void)
|
|
|
|
|
88 {
|
|
|
|
|
89 1 // LEDAllOff(); //<2F>ر<EFBFBD>LED<45><44>ʾ
|
|
|
|
|
90 1 BlueToothPowerDis(); //<2F>ر<EFBFBD><D8B1><EFBFBD><EFBFBD><EFBFBD>ģ<EFBFBD><C4A3>
|
|
|
|
|
91 1 bLedDisBleFlg = 0;
|
|
|
|
|
92 1
|
|
|
|
|
93 1 AfeWDTDis(); //<2F>ر<EFBFBD>AFE WDT
|
|
|
|
|
94 1 AfeTempADCDis(); //<2F>ر<EFBFBD>AFE<46>¶Ȳɼ<C8B2>
|
|
|
|
|
95 1 AfeAlarmEn(AFE_ALARM_SC | AFE_ALARM_OV | AFE_ALARM_CD); //<2F><><EFBFBD><EFBFBD>SC,OV,CD<43><44>Alarm<72><6D><EFBFBD><EFBFBD>
|
|
|
|
|
96 1 McuTwiDis(); //<2F>ر<EFBFBD>MCU Twiģ<69>齵<EFBFBD><EFBFBD><CDB9><EFBFBD>
|
|
|
|
|
97 1 McuPWM2Dis(); //<2F>ر<EFBFBD>MCU PWMģ<4D><C4A3>
|
|
|
|
|
98 1 if(bDSGMOS) //DSG<53><47><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>ֱ<EFBFBD><D6B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ߵ<EFBFBD>ƽ
|
|
|
|
|
99 1 {
|
|
|
|
|
100 2 IO_DSG_PWM = 1;
|
|
|
|
|
101 2 }
|
|
|
|
|
102 1 else
|
|
|
|
|
103 1 {
|
|
|
|
|
104 2 IO_DSG_PWM = 0;
|
|
|
|
|
105 2 }
|
|
|
|
|
106 1 Delay1ms(1);
|
|
|
|
|
107 1
|
|
|
|
|
108 1 IrqDis(); //<2F>ر<EFBFBD><D8B1><EFBFBD><EFBFBD>ж<EFBFBD>Դ
|
|
|
|
|
109 1 #if (UART0_DEFINE != 0)
|
|
|
|
|
110 1 IrqUart0Dis();
|
|
|
|
|
111 1 #endif
|
|
|
|
|
112 1 #if (UART1_DEFINE != 0)
|
|
|
|
|
IrqUart1Dis();
|
|
|
|
|
#endif
|
2025-02-08 07:27:19 +00:00
|
|
|
|
C51 COMPILER V9.01 LOWPOWER 02/08/2025 15:18:20 PAGE 3
|
2025-02-06 07:35:32 +00:00
|
|
|
|
|
|
|
|
|
115 1 #if (UART2_DEFINE != 0)
|
|
|
|
|
IrqUart2Dis();
|
|
|
|
|
#endif
|
|
|
|
|
118 1 IrqTimer3Dis(); //<2F>ر<EFBFBD>Timer3<72>ж<EFBFBD>
|
|
|
|
|
119 1 IrqINT4FlgClr(); //<2F><><EFBFBD><EFBFBD><EFBFBD>ⲿ<EFBFBD>ж<EFBFBD>4<EFBFBD><34><EFBFBD><EFBFBD><EFBFBD><EFBFBD>־
|
|
|
|
|
120 1 McuClockSet(MCU_CLK_128KHz); //<2F><><EFBFBD><EFBFBD>ϵͳʱ<CDB3><CAB1>Ϊ128KHz
|
|
|
|
|
121 1 IrqEn();
|
|
|
|
|
122 1
|
|
|
|
|
123 1 McuIntoPD(); //MCU<43><55><EFBFBD><EFBFBD>PD<50><44><EFBFBD><EFBFBD>ͨ<EFBFBD><CDA8><EFBFBD>ⲿ<EFBFBD><E2B2BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ALARM<52><4D><EFBFBD>ѡ<EFBFBD><D1A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϵ<EFBFBD>
|
|
|
|
|
-<2D><><EFBFBD>sleep<65><70><EFBFBD><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD>й<EFBFBD>DSG MOS<4F><53><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD>С<EFBFBD><D0A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>о<EFBFBD>Ŀգ<C4BF><D5A3><EFBFBD><EFBFBD>ǣ<EFBFBD>AFE<46>ڲ<EFBFBD>Ԥ<EFBFBD><D4A4>FUSE<53><45><EFBFBD><EFBFBD>VDD<44><44>ѹ<EFBFBD><D1B9><EFBFBD><EFBFBD>4Vʱ<56><CAB1><EFBFBD>ر<EFBFBD>LDO<44><4F>ʹV33<33>
|
|
|
|
|
-ϵ硣
|
|
|
|
|
124 1 }
|
|
|
|
|
125
|
|
|
|
|
126
|
|
|
|
|
127
|
|
|
|
|
128
|
|
|
|
|
129 /*************************************************************************************************
|
|
|
|
|
130 * <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: LowPowerCheck
|
|
|
|
|
131 * <20><> <20><>: <20><>
|
|
|
|
|
132 * <20><><EFBFBD><EFBFBD>ֵ: <20><>
|
|
|
|
|
133 * <20><> <20><>: <20><><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD>IDLE<4C><45><EFBFBD><EFBFBD>PD
|
|
|
|
|
134 *************************************************************************************************/
|
|
|
|
|
135 void LowPowerCheck(void)
|
|
|
|
|
136 {
|
|
|
|
|
137 1 if(bPCEnterPDFlg && (bUart0SndAckFlg||bUart1SndAckFlg||bUart2SndAckFlg)) //<2F><>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
-<2D><><EFBFBD><EFBFBD>ǿ<EFBFBD>ƽ<EFBFBD><C6BD><EFBFBD>PD
|
|
|
|
|
138 1 {
|
|
|
|
|
139 2 bPCEnterPDFlg = 0;
|
|
|
|
|
140 2 bPDFlg = 1;
|
|
|
|
|
141 2 }
|
|
|
|
|
142 1 else if(bCTO) //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ߺ<EFBFBD><DFBA><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>PD
|
|
|
|
|
143 1 {
|
|
|
|
|
144 2 if(++ucPDTimerCnt >= E2ucLowPowerDeley)
|
|
|
|
|
145 2 {
|
|
|
|
|
146 3 ucPDTimerCnt = E2ucLowPowerDeley;
|
|
|
|
|
147 3 bPDFlg = 1;
|
|
|
|
|
148 3 }
|
|
|
|
|
149 2 }
|
|
|
|
|
150 1 else if(!bLedDisFlg) //LED<45><44>ʾ<EFBFBD>رպ<D8B1><D5BA><EFBFBD>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><CDB9><EFBFBD>
|
|
|
|
|
151 1 {
|
|
|
|
|
152 2 if(!bCHGING && !bDSGING) //<2F>dz<EFBFBD><C7B3>Ƿ<EFBFBD>״̬
|
|
|
|
|
153 2 {
|
|
|
|
|
154 3 if(bUV) //<2F><><EFBFBD><EFBFBD>Ƿѹ<C7B7><D1B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>PD
|
|
|
|
|
155 3 {
|
|
|
|
|
156 4 if(++ucPDTimerCnt >= E2ucLowPowerDeley)
|
|
|
|
|
157 4 {
|
|
|
|
|
158 5 ucPDTimerCnt = E2ucLowPowerDeley;
|
|
|
|
|
159 5 bPDFlg = 1;
|
|
|
|
|
160 5 }
|
|
|
|
|
161 4 }
|
|
|
|
|
162 3 else //δ<><CEB4><EFBFBD><EFBFBD>Ƿѹ<C7B7><D1B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>δ<EFBFBD><CEB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>IDLE
|
|
|
|
|
163 3 {
|
|
|
|
|
164 4 ucPDTimerCnt = 0;
|
|
|
|
|
165 4 if(!(bOTC | bUTC | bOV | bOCC | bOTD | bUTD | bUV | bOCD1 | bOCD2 | bAFE_SC | bLedDisBleFl
|
|
|
|
|
-g))
|
|
|
|
|
166 4 {
|
|
|
|
|
167 5 if(++ucSleepTimerCnt >= E2ucLowPowerDeley)
|
|
|
|
|
168 5 {
|
|
|
|
|
169 6 ucSleepTimerCnt = E2ucLowPowerDeley;
|
|
|
|
|
170 6 bSleepFlg = 1;
|
|
|
|
|
171 6 }
|
|
|
|
|
172 5 }
|
2025-02-08 07:27:19 +00:00
|
|
|
|
C51 COMPILER V9.01 LOWPOWER 02/08/2025 15:18:20 PAGE 4
|
2025-02-06 07:35:32 +00:00
|
|
|
|
|
|
|
|
|
173 4 else
|
|
|
|
|
174 4 {
|
|
|
|
|
175 5 ucSleepTimerCnt = 0;
|
|
|
|
|
176 5 }
|
|
|
|
|
177 4 }
|
|
|
|
|
178 3 }
|
|
|
|
|
179 2 else
|
|
|
|
|
180 2 {
|
|
|
|
|
181 3 ucSleepTimerCnt = 0;
|
|
|
|
|
182 3 ucPDTimerCnt = 0;
|
|
|
|
|
183 3 }
|
|
|
|
|
184 2 }
|
|
|
|
|
185 1 else
|
|
|
|
|
186 1 {
|
|
|
|
|
187 2 ucSleepTimerCnt = 0;
|
|
|
|
|
188 2 ucPDTimerCnt = 0;
|
|
|
|
|
189 2 }
|
|
|
|
|
190 1 }
|
|
|
|
|
191
|
|
|
|
|
192
|
|
|
|
|
193 /*************************************************************************************************
|
|
|
|
|
194 * <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: LowPowerProcess
|
|
|
|
|
195 * <20><> <20><>: <20><>
|
|
|
|
|
196 * <20><><EFBFBD><EFBFBD>ֵ: <20><>
|
|
|
|
|
197 * <20><> <20><>: <20><EFBFBD><CDB9>Ĵ<EFBFBD><C4B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>IDLE<4C><45><EFBFBD><EFBFBD>PD
|
|
|
|
|
198 *************************************************************************************************/
|
|
|
|
|
199 void LowPowerProcess(void)
|
|
|
|
|
200 {
|
|
|
|
|
201 1 if(!bSleepFlg && !bPDFlg)
|
|
|
|
|
202 1 {
|
|
|
|
|
203 2 IrqDis();
|
|
|
|
|
204 2 if(!(bKeyFlg | bCaliFlg | bMcuFlashWrFlg | bWakeupFlg | bISPFlg | bTimer50msFlg | bTimer1sFlg) && (ucRes
|
|
|
|
|
-etFlag!=0x12))
|
|
|
|
|
205 2 {
|
|
|
|
|
206 3 IrqEn();
|
|
|
|
|
207 3 McuIntoIdle();
|
|
|
|
|
208 3 }
|
|
|
|
|
209 2 IrqEn();
|
|
|
|
|
210 2 }
|
|
|
|
|
211 1 else if(bPDFlg)
|
|
|
|
|
212 1 {
|
|
|
|
|
213 2 bMcuFlashWrFlg = 1;
|
|
|
|
|
214 2 McuFlashProcess();
|
|
|
|
|
215 2 SystemIntoPD();
|
|
|
|
|
216 2 }
|
|
|
|
|
217 1 else if(bSleepFlg)
|
|
|
|
|
218 1 {
|
|
|
|
|
219 2 SystemIntoSleep();
|
|
|
|
|
220 2 }
|
|
|
|
|
221 1
|
|
|
|
|
222 1 WakeUpProcess(); //ϵͳ<CFB5>ӵ<D3B5><CDB9>Ļ<EFBFBD><C4BB><EFBFBD>
|
|
|
|
|
223 1 }
|
|
|
|
|
224
|
|
|
|
|
225
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
MODULE INFORMATION: STATIC OVERLAYABLE
|
|
|
|
|
CODE SIZE = 342 ----
|
|
|
|
|
CONSTANT SIZE = ---- ----
|
|
|
|
|
XDATA SIZE = 3 ----
|
|
|
|
|
PDATA SIZE = ---- ----
|
|
|
|
|
DATA SIZE = ---- ----
|
2025-02-08 07:27:19 +00:00
|
|
|
|
C51 COMPILER V9.01 LOWPOWER 02/08/2025 15:18:20 PAGE 5
|
2025-02-06 07:35:32 +00:00
|
|
|
|
|
|
|
|
|
IDATA SIZE = ---- ----
|
|
|
|
|
BIT SIZE = 4 ----
|
|
|
|
|
END OF MODULE INFORMATION.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
|