ZDBMS/output/LowPower.lst

265 lines
13 KiB
Plaintext
Raw Normal View History

2025-02-14 08:59:29 +00:00
C51 COMPILER V9.01 LOWPOWER 02/13/2025 10:07:27 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-14 08:59:29 +00:00
C51 COMPILER V9.01 LOWPOWER 02/13/2025 10:07:27 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-14 08:59:29 +00:00
C51 COMPILER V9.01 LOWPOWER 02/13/2025 10:07:27 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-14 08:59:29 +00:00
C51 COMPILER V9.01 LOWPOWER 02/13/2025 10:07:27 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-14 08:59:29 +00:00
C51 COMPILER V9.01 LOWPOWER 02/13/2025 10:07:27 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)