ZDBMS/output/Calculate.lst

540 lines
30 KiB
Plaintext
Raw Normal View History

2025-02-06 07:35:32 +00:00
C51 COMPILER V9.01 CALCULATE 02/06/2025 15:28:45 PAGE 1
C51 COMPILER V9.01, COMPILATION OF MODULE CALCULATE
OBJECT MODULE PLACED IN .\output\Calculate.obj
COMPILER INVOKED BY: D:\Tool\Keil\C51\BIN\C51.EXE code_drv\Calculate.c LARGE OPTIMIZE(7,SIZE) REGFILE(.\output\MCUCore_L
-oad.ORC) BROWSE INTVECTOR(0X1000) INCDIR(.\header_app;.\header_drv;.\code_gasguage;.\code_classb\iec60730_lib\include;.\
-code_classb\iec60730_proc\Include;.\code_classb\config) DEBUG OBJECTEXTEND PRINT(.\output\Calculate.lst) OBJECT(.\output
-\Calculate.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 U8 xdata ucChgingCheckCnt;
13 U8 xdata ucDsgingCheckCnt;
14
15 /*************************************************************************************************
16 * <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: CalcuTemp
17 * <20><> <20><>: <20><>
18 * <20><><EFBFBD><EFBFBD>ֵ: <20><>
19 * <20><> <20><>: <20><><EFBFBD>ݼ<EFBFBD><DDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȡ<EFBFBD><C8A1>Ӧ<EFBFBD>¶ȡ<C2B6><C8A1>¶ȱ<C2B6><C8B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>*10
20 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>϶<EFBFBD>25<32><EFBFBD>¶ȱ<C2B6><C8B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵΪ2731+250
21 *************************************************************************************************/
22 U16 CalcuTemp(U16 getdata)
23 {
24 1 U8 i;
25 1 U16 Temperature;
26 1 U32 Tempcalcu;
27 1
28 1 #if (AFE_ID == 0x34)
Tempcalcu = (U32)getdata*REF_RES_VAL/(32768-getdata);
#else
31 1 Tempcalcu= (U32)getdata*REF_RES_VAL/(4096-getdata); //calculte the resistance value of 103AT
32 1 if(Tempcalcu > 10)
33 1 {
34 2 Tempcalcu -= 10;
35 2 }
36 1 #endif
37 1
38 1 if(Tempcalcu >= NTC103AT[0]) //look up table to find the resieter correspond
-temp
39 1 {
40 2 Temperature = 2731+(TEMP_LOWER_LIMIT *10);
41 2 }
42 1 else if(Tempcalcu <= NTC103AT[NTC103AT_ARRAY_LEN-1])
43 1 {
44 2 Temperature = 2731+(TEMP_UPPER_LIMIT *10);
45 2 }
46 1 else
47 1 {
48 2 i = ucTempeMiddle; //the ucTempeMiddle must be initialized in InitVar()
49 2 if(Tempcalcu > NTC103AT[i])
50 2 {
51 3 for(i=ucTempeMiddle-1; i>=0; i--)
C51 COMPILER V9.01 CALCULATE 02/06/2025 15:28:45 PAGE 2
52 3 {
53 4 if(Tempcalcu <= NTC103AT[i]) //NTC103AT[i+1]<resis<NTC103AT[i]
54 4 {
55 5 break;
56 5 }
57 4 }
58 3 }
59 2 else
60 2 {
61 3 for(i=ucTempeMiddle+1; i<NTC103AT_ARRAY_LEN-1; i++)
62 3 {
63 4 if(Tempcalcu > NTC103AT[i]) //NTC103AT[i-1]<resis<NTC103AT[i]
64 4 {
65 5 break;
66 5 }
67 4 }
68 3 i--;
69 3 }
70 2 ucTempeMiddle = i;
71 2
72 2 Temperature = (U16)(ucTempeMiddle-50)*10+(NTC103AT[i]-Tempcalcu)*10/(NTC103AT[i]-NTC103AT[i+1])+2731;
73 2 }
74 1 return Temperature;
75 1 }
76
77
78 /*************************************************************************************************
79 * <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: AfeGetVol<6F><6C>AfeGetTempe
80 * <20><> <20><>: <20><>
81 * <20><><EFBFBD><EFBFBD>ֵ: <20><>
82 * <20><> <20><>: <20><>AFE<46><45>ȡ<EFBFBD><C8A1>ѹ<EFBFBD><D1B9><EFBFBD>¶Ȳɼ<C8B2><C9BC><EFBFBD><EFBFBD><EFBFBD>
83 *************************************************************************************************/
84 BOOL AfeGetVol(void)
85 {
86 1 U8 i;
87 1 BOOL Result=1;
88 1
89 1 for(i=ucCellNumOffset; i<(ucCellNum+ucCellNumOffset); i++)
90 1 {
91 2 if(!AFEReadReg(AFE_CELL1H+2*i, 2, (U8 xdata *)(&AFE.uiCell[i]))) //ͨ<><CDA8>TWI<57><49>ȡVADC<44>ɼ<EFBFBD><C9BC>ĵ<EFBFBD>ѹֵ()
92 2 {
93 3 Result = 0;
94 3 return Result;
95 3 }
96 2 }
97 1
98 1 return Result;
99 1 }
100
101 BOOL AfeGetTempe(void)
102 {
103 1 BOOL Result=1;
104 1
105 1 if(!AFEReadReg(AFE_TS1H, 2, (U8 xdata *)&AFE.uiTS[0]))
106 1 {
107 2 Result = 0;
108 2 }
109 1 if(!AFEReadReg(AFE_TS2H, 2, (U8 xdata *)&AFE.uiTS[1]))
110 1 {
111 2 Result = 0;
112 2 }
113 1
C51 COMPILER V9.01 CALCULATE 02/06/2025 15:28:45 PAGE 3
114 1 if(!AFEReadReg(AFE_TEMP1H, 2, (U8 xdata *)&AFE.uiICTempe[0]))
115 1 {
116 2 Result = 0;
117 2 }
118 1 if(ucCellNum > 5) //6~10<31><30>Ӧ<EFBFBD><D3A6>ʱ
119 1 {
120 2 if(!AFEReadReg(AFE_TEMP2H, 2, (U8 xdata *)&AFE.uiICTempe[1]))
121 2 {
122 3 Result = 0;
123 3 }
124 2 }
125 1
126 1 return Result;
127 1 }
128
129
130 /*************************************************************************************************
131 * <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: AfeCalcuTempe
132 * <20><> <20><>: <20><>
133 * <20><><EFBFBD><EFBFBD>ֵ: <20><>
134 * <20><> <20><>: <20><><EFBFBD><EFBFBD><EFBFBD>ȣ<C2B6><C8A3><EFBFBD><EFBFBD><EFBFBD>uiTempeMax<61><78>uiTempeMin
135 *************************************************************************************************/
136 void AfeCalcuTempe(void)
137 {
138 1 U16 TempeData;
139 1
140 1 if(AfeGetTempe())
141 1 {
142 2 TempeData = CalcuTemp(AFE.uiTS[0]) + E2siTS0Offset; //<2F><><EFBFBD><EFBFBD><EFBFBD>ⲿ<EFBFBD><EFBFBD>1
143 2 #if (UART0_DEFINE != 0)
144 2 IrqUart0Dis();
145 2 #endif
146 2 #if (UART1_DEFINE != 0)
IrqUart1Dis();
#endif
149 2 #if (UART2_DEFINE != 0)
IrqUart2Dis();
#endif
152 2 Info.uiTS[0] = TempeData;
153 2 #if (UART0_DEFINE != 0)
154 2 IrqUart0En(); //<2F><><EFBFBD><EFBFBD>uart0<74>ж<EFBFBD>
155 2 #endif
156 2 #if (UART1_DEFINE != 0)
IrqUart1En(); //<2F><><EFBFBD><EFBFBD>uart1<74>ж<EFBFBD>
#endif
159 2 #if (UART2_DEFINE != 0)
IrqUart2En(); //<2F><>ʼ<EFBFBD><CABC>UART2<54>ж<EFBFBD>ʹ<EFBFBD>ܣ<EFBFBD><DCA3><EFBFBD><EFBFBD>ݾ<EFBFBD><DDBE><EFBFBD>ʹ<EFBFBD><CAB9>UARTģ<54><C4A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѡ<EFBFBD><D1A1>
#endif
162 2 TempeData = (U32)AFE.uiICTempe[0]*17/10+31; //<2F><><EFBFBD><EFBFBD><EFBFBD>ڲ<EFBFBD><DAB2><EFBFBD>1
163 2 #if (UART0_DEFINE != 0)
164 2 IrqUart0Dis();
165 2 #endif
166 2 #if (UART1_DEFINE != 0)
IrqUart1Dis();
#endif
169 2 #if (UART2_DEFINE != 0)
IrqUart2Dis();
#endif
172 2 Info.uiICTempe[0] = TempeData;
173 2
174 2 #if (UART0_DEFINE != 0)
175 2 IrqUart0En(); //<2F><><EFBFBD><EFBFBD>uart0<74>ж<EFBFBD>
C51 COMPILER V9.01 CALCULATE 02/06/2025 15:28:45 PAGE 4
176 2 #endif
177 2 #if (UART1_DEFINE != 0)
IrqUart1En(); //<2F><><EFBFBD><EFBFBD>uart1<74>ж<EFBFBD>
#endif
180 2 #if (UART2_DEFINE != 0)
IrqUart2En(); //<2F><>ʼ<EFBFBD><CABC>UART2<54>ж<EFBFBD>ʹ<EFBFBD>ܣ<EFBFBD><DCA3><EFBFBD><EFBFBD>ݾ<EFBFBD><DDBE><EFBFBD>ʹ<EFBFBD><CAB9>UARTģ<54><C4A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѡ<EFBFBD><D1A1>
#endif
183 2
184 2 if(ucCellNum > 5) //6~10<31><30>Ӧ<EFBFBD><D3A6>ʱ
185 2 {
186 3 TempeData = (U32)AFE.uiICTempe[1]*17/10+31; //<2F><><EFBFBD><EFBFBD><EFBFBD>ڲ<EFBFBD><DAB2><EFBFBD>2
187 3 #if (UART0_DEFINE != 0)
188 3 IrqUart0Dis();
189 3 #endif
190 3 #if (UART1_DEFINE != 0)
IrqUart1Dis();
#endif
193 3 #if (UART2_DEFINE != 0)
IrqUart2Dis();
#endif
196 3 Info.uiICTempe[1] = TempeData;
197 3 #if (UART0_DEFINE != 0)
198 3 IrqUart0En(); //<2F><><EFBFBD><EFBFBD>uart0<74>ж<EFBFBD>
199 3 #endif
200 3 #if (UART1_DEFINE != 0)
IrqUart1En(); //<2F><><EFBFBD><EFBFBD>uart1<74>ж<EFBFBD>
#endif
203 3 #if (UART2_DEFINE != 0)
IrqUart2En(); //<2F><>ʼ<EFBFBD><CABC>UART2<54>ж<EFBFBD>ʹ<EFBFBD>ܣ<EFBFBD><DCA3><EFBFBD><EFBFBD>ݾ<EFBFBD><DDBE><EFBFBD>ʹ<EFBFBD><CAB9>UARTģ<54><C4A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѡ<EFBFBD><D1A1>
#endif
206 3 }
207 2
208 2 uiTempeMin = Info.uiTS[0];
209 2 uiTempeMax = Info.uiTS[0];
210 2 if(bTempNum)
211 2 {
212 3 TempeData = CalcuTemp(AFE.uiTS[1]) + E2siTS1Offset; //<2F><><EFBFBD><EFBFBD><EFBFBD>ⲿ<EFBFBD><EFBFBD>2
213 3 #if (UART0_DEFINE != 0)
214 3 IrqUart0Dis();
215 3 #endif
216 3 #if (UART1_DEFINE != 0)
IrqUart1Dis();
#endif
219 3 #if (UART2_DEFINE != 0)
IrqUart2Dis();
#endif
222 3 Info.uiTS[1] = TempeData;
223 3 #if (UART0_DEFINE != 0)
224 3 IrqUart0En(); //<2F><><EFBFBD><EFBFBD>uart0<74>ж<EFBFBD>
225 3 #endif
226 3 #if (UART1_DEFINE != 0)
IrqUart1En(); //<2F><><EFBFBD><EFBFBD>uart1<74>ж<EFBFBD>
#endif
229 3 #if (UART2_DEFINE != 0)
IrqUart2En(); //<2F><>ʼ<EFBFBD><CABC>UART2<54>ж<EFBFBD>ʹ<EFBFBD>ܣ<EFBFBD><DCA3><EFBFBD><EFBFBD>ݾ<EFBFBD><DDBE><EFBFBD>ʹ<EFBFBD><CAB9>UARTģ<54><C4A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѡ<EFBFBD><D1A1>
#endif
232 3
233 3 if(TempeData < uiTempeMin)
234 3 {
235 4 uiTempeMin = TempeData;
236 4 }
237 3 else
C51 COMPILER V9.01 CALCULATE 02/06/2025 15:28:45 PAGE 5
238 3 {
239 4 uiTempeMax = TempeData;
240 4 }
241 3 }
242 2 }
243 1 }
244
245
246 /*************************************************************************************************
247 * <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: AfeCalcuVol
248 * <20><> <20><>: <20><>
249 * <20><><EFBFBD><EFBFBD>ֵ: <20><>
250 * <20><> <20><>: <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѹ<EFBFBD><D1B9>ͬ<EFBFBD><CDAC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5>СֵuiVadcVmax<61><78>uiVadcVmin<69><6E><EFBFBD><EFBFBD><EFBFBD>ڶ<EFBFBD><DAB6><EFBFBD><EFBFBD>ж<EFBFBD>
251 <20><>û<EFBFBD><C3BB>ƽ<EFBFBD><C6BD>ʱ<EFBFBD><CAB1><EFBFBD>Ÿ<EFBFBD><C5B8><EFBFBD>uiCellVmax<61><78>uiCellVmin<69><6E><EFBFBD><EFBFBD><EFBFBD>ڱ<EFBFBD><DAB1><EFBFBD><EFBFBD>ж<EFBFBD>
252 *************************************************************************************************/
253 void AfeCalcuVol(void)
254 {
255 1 U8 i;
256 1 U32 TempPackVol=0, TempCellVol=0;
257 1 uiVadcVmax = 0;
258 1 uiVadcVmin = 6000;
259 1
260 1 if(AfeGetVol())
261 1 {
262 2 for(i=ucCellNumOffset; i<(ucCellNum+ucCellNumOffset); i++)
263 2 {
264 3 TempCellVol = (U32)AFE.uiCell[i]*CALIVOL/E2uiVPackGain;
265 3
266 3 if(TempCellVol > uiVadcVmax) //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ&<26><>Сֵ
267 3 {
268 4 uiVadcVmax = TempCellVol;
269 4 }
270 3 if(TempCellVol < uiVadcVmin)
271 3 {
272 4 uiVadcVmin = TempCellVol;
273 4 }
274 3
275 3 if(!bBalancingFlg) //if bCellOpenDecFlag this data will throw away
276 3 {
277 4 #if (UART0_DEFINE != 0)
278 4 IrqUart0Dis();
279 4 #endif
280 4 #if (UART1_DEFINE != 0)
IrqUart1Dis();
#endif
283 4 #if (UART2_DEFINE != 0)
IrqUart2Dis();
#endif
286 4 Info.uiVCell[i] = TempCellVol;
287 4 #if (UART0_DEFINE != 0)
288 4 IrqUart0En(); //<2F><><EFBFBD><EFBFBD>uart0<74>ж<EFBFBD>
289 4 #endif
290 4 #if (UART1_DEFINE != 0)
IrqUart1En(); //<2F><><EFBFBD><EFBFBD>uart1<74>ж<EFBFBD>
#endif
293 4 #if (UART2_DEFINE != 0)
IrqUart2En(); //<2F><>ʼ<EFBFBD><CABC>UART2<54>ж<EFBFBD>ʹ<EFBFBD>ܣ<EFBFBD><DCA3><EFBFBD><EFBFBD>ݾ<EFBFBD><DDBE><EFBFBD>ʹ<EFBFBD><CAB9>UARTģ<54><C4A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѡ<EFBFBD><D1A1>
#endif
296 4 TempPackVol += TempCellVol;
297 4 }
298 3 }
299 2
C51 COMPILER V9.01 CALCULATE 02/06/2025 15:28:45 PAGE 6
300 2 if(!bBalancingFlg)
301 2 {
302 3 uiCellVmax = uiVadcVmax;
303 3 uiCellVmin = uiVadcVmin;
304 3
305 3 #if (UART0_DEFINE != 0)
306 3 IrqUart0Dis();
307 3 #endif
308 3 #if (UART1_DEFINE != 0)
IrqUart1Dis();
#endif
311 3 #if (UART2_DEFINE != 0)
IrqUart2Dis();
#endif
314 3 Info.ulVoltage = TempPackVol; //Calculate the total voltage
315 3 #if (UART0_DEFINE != 0)
316 3 IrqUart0En(); //<2F><><EFBFBD><EFBFBD>uart0<74>ж<EFBFBD>
317 3 #endif
318 3 #if (UART1_DEFINE != 0)
IrqUart1En(); //<2F><><EFBFBD><EFBFBD>uart1<74>ж<EFBFBD>
#endif
321 3 #if (UART2_DEFINE != 0)
IrqUart2En(); //<2F><>ʼ<EFBFBD><CABC>UART2<54>ж<EFBFBD>ʹ<EFBFBD>ܣ<EFBFBD><DCA3><EFBFBD><EFBFBD>ݾ<EFBFBD><DDBE><EFBFBD>ʹ<EFBFBD><CAB9>UARTģ<54><C4A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѡ<EFBFBD><D1A1>
#endif
324 3 }
325 2 }
326 1 }
327
328
329 /*************************************************************************************************
330 * <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: CurTempOffset
331 * <20><> <20><>: <20><>
332 * <20><><EFBFBD><EFBFBD>ֵ: <20><>
333 * <20><> <20><>: <20><>ͬоƬ<D0BE><EFBFBD><C2B6><EFBFBD>ADC<44>IJ<EFBFBD><C4B2><EFBFBD>ֵ
334 *************************************************************************************************/
335 S16 code siCurTempOffset[2][13]=
336 { /**0****1****2****3***4***5***6***7***8***9**10**11**12**/
337 {-40, -30, -20, -10, 0, 10, 25, 35, 45, 55, 65, 75, 85},
338 { -5, -4, -3, -2, -1, -1, 0, 1, 1, 2, 3, 4, 5},
339 };
340
341 /*************************************************************************************************
342 * <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: OffsetCalculate()
343 * <20><> <20><>: <20><>
344 * <20><><EFBFBD><EFBFBD>ֵ: <20><>
345 * <20><> <20><>: <20><><EFBFBD><EFBFBD>оƬ<D0BE>ڲ<EFBFBD><DAB2><EFBFBD>ʵʱ<CAB5><CAB1><EFBFBD><EFBFBD>0<EFBFBD><30><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5><EFBFBD>Ա<EFBFBD><D4B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>¶ȶ<C2B6>ADC<44>ɼ<EFBFBD><C9BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ӱ<EFBFBD><D3B0>
346 *************************************************************************************************/
347 S16 OffsetCalculate(void)
348 {
349 1 S16 xdata siCadcTempOffset=0; //20220620
350 1 U8 xdata i;
351 1
352 1 for(i=0; i<12; i++)
353 1 {
354 2 if(Info.uiICTempe[0] <= (((S32)siCurTempOffset[0][i] + siCurTempOffset[0][i+1]) / 2 * 10 + 2731))
355 2 {
356 3 siCadcTempOffset = siCurTempOffset[1][i];
357 3 break;
358 3 }
359 2 }
360 1 return siCadcTempOffset;
361 1 }
C51 COMPILER V9.01 CALCULATE 02/06/2025 15:28:45 PAGE 7
362
363 /*************************************************************************************************
364 * <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: AfeCalcuCurr
365 * <20><> <20><>: <20><>
366 * <20><><EFBFBD><EFBFBD>ֵ: <20><>
367 * <20><> <20><>: <20><><EFBFBD><EFBFBD>CADC<44>ɼ<EFBFBD><C9BC>ĵ<EFBFBD><C4B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
368 *************************************************************************************************/
369 void AfeCalcuCurr(void)
370 {
371 1 U8 i;
372 1 S32 Tempdata=0;
373 1
374 1 AFEReadReg(AFE_CURH, 2, (U8 xdata *)&AFE.siCurr); //ͨ<><CDA8>TWI<57><49>ȡCADC<44>ɼ<EFBFBD><C9BC>ĵ<EFBFBD><C4B5><EFBFBD>ֵ
375 1
376 1 if((AFE.siCurr&0x1000) != 0) //<2F><><EFBFBD><EFBFBD>bit12<31>ж<EFBFBD><D0B6>Ƿ<EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD>(<28>ŵ<EFBFBD><C5B5><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA>ֵ)<29><><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA>ֵ<EFBFBD><D6B5>λ<EFBFBD><CEBB>0
377 1 {
378 2 AFE.siCurr|=0xE000;
379 2 }
380 1 slCadcCurrent = (S32)CALICUR*(AFE.siCurr-E2siCadcOffset+OffsetCalculate())/E2siCadcGain;
381 1
382 1 slCadcCurBuf[ucCadcCnt] = slCadcCurrent; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɼ<EFBFBD><C9BC><EFBFBD>16<31>ε<EFBFBD><CEB5><EFBFBD>ȡƽ<C8A1><C6BD>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD>ֵ
383 1 if(++ucCadcCnt >= 16)
384 1 {
385 2 ucCadcCnt = 0;
386 2 }
387 1 for(i=0; i<16; i++)
388 1 {
389 2 Tempdata += slCadcCurBuf[i];
390 2 }
391 1 slCadcCurAverage = Tempdata/16;
392 1
393 1 bDSGING = 0; //<2F><><EFBFBD>ݵ<EFBFBD><DDB5><EFBFBD><EFBFBD>ж<EFBFBD><D0B6><EFBFBD><EFBFBD>ŵ<EFBFBD>״̬
394 1 bCHGING = 0;
395 1 if(slCadcCurAverage < (-E2siDfilterCur))
396 1 {
397 2 if(++ucDsgingCheckCnt >= TIME_50MS_500MS) //<2F><><EFBFBD>ŵ<EFBFBD>״̬<D7B4><CCAC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ10*50mS
398 2 {
399 3 ucDsgingCheckCnt = TIME_50MS_500MS;
400 3 bDSGING = 1;
401 3 #if (UART0_DEFINE != 0)
402 3 IrqUart0Dis();
403 3 #endif
404 3 #if (UART1_DEFINE != 0)
IrqUart1Dis();
#endif
407 3 #if (UART2_DEFINE != 0)
IrqUart2Dis();
#endif
410 3 Info.slCurr = slCadcCurAverage;
411 3 #if (UART0_DEFINE != 0)
412 3 IrqUart0En(); //<2F><><EFBFBD><EFBFBD>uart0<74>ж<EFBFBD>
413 3 #endif
414 3 #if (UART1_DEFINE != 0)
IrqUart1En(); //<2F><><EFBFBD><EFBFBD>uart1<74>ж<EFBFBD>
#endif
417 3 #if (UART2_DEFINE != 0)
IrqUart2En(); //<2F><>ʼ<EFBFBD><CABC>UART2<54>ж<EFBFBD>ʹ<EFBFBD>ܣ<EFBFBD><DCA3><EFBFBD><EFBFBD>ݾ<EFBFBD><DDBE><EFBFBD>ʹ<EFBFBD><CAB9>UARTģ<54><C4A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѡ<EFBFBD><D1A1>
#endif
420 3 }
421 2 }
422 1 else if(slCadcCurAverage > E2siDfilterCur)
423 1 {
C51 COMPILER V9.01 CALCULATE 02/06/2025 15:28:45 PAGE 8
424 2 if(++ucChgingCheckCnt >= TIME_50MS_500MS) //<2F><><EFBFBD>ŵ<EFBFBD>״̬<D7B4><CCAC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ10*50mS
425 2 {
426 3 ucChgingCheckCnt = TIME_50MS_500MS;
427 3 bCHGING = 1;
428 3 McuPWM2Set(4000, 100);
429 3 #if (UART0_DEFINE != 0)
430 3 IrqUart0Dis();
431 3 #endif
432 3 #if (UART1_DEFINE != 0)
IrqUart1Dis();
#endif
435 3 #if (UART2_DEFINE != 0)
IrqUart2Dis();
#endif
438 3 Info.slCurr = slCadcCurAverage;
439 3 #if (UART0_DEFINE != 0)
440 3 IrqUart0En(); //<2F><><EFBFBD><EFBFBD>uart0<74>ж<EFBFBD>
441 3 #endif
442 3 #if (UART1_DEFINE != 0)
IrqUart1En(); //<2F><><EFBFBD><EFBFBD>uart1<74>ж<EFBFBD>
#endif
445 3 #if (UART2_DEFINE != 0)
IrqUart2En(); //<2F><>ʼ<EFBFBD><CABC>UART2<54>ж<EFBFBD>ʹ<EFBFBD>ܣ<EFBFBD><DCA3><EFBFBD><EFBFBD>ݾ<EFBFBD><DDBE><EFBFBD>ʹ<EFBFBD><CAB9>UARTģ<54><C4A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѡ<EFBFBD><D1A1>
#endif
448 3 }
449 2 }
450 1 else
451 1 {
452 2 #if (UART0_DEFINE != 0)
453 2 IrqUart0Dis();
454 2 #endif
455 2 #if (UART1_DEFINE != 0)
IrqUart1Dis();
#endif
458 2 #if (UART2_DEFINE != 0)
IrqUart2Dis();
#endif
461 2 Info.slCurr = 0;
462 2 #if (UART0_DEFINE != 0)
463 2 IrqUart0En(); //<2F><><EFBFBD><EFBFBD>uart0<74>ж<EFBFBD>
464 2 #endif
465 2 #if (UART1_DEFINE != 0)
IrqUart1En(); //<2F><><EFBFBD><EFBFBD>uart1<74>ж<EFBFBD>
#endif
468 2 #if (UART2_DEFINE != 0)
IrqUart2En(); //<2F><>ʼ<EFBFBD><CABC>UART2<54>ж<EFBFBD>ʹ<EFBFBD>ܣ<EFBFBD><DCA3><EFBFBD><EFBFBD>ݾ<EFBFBD><DDBE><EFBFBD>ʹ<EFBFBD><CAB9>UARTģ<54><C4A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѡ<EFBFBD><D1A1>
#endif
471 2 }
472 1 }
473
474
475 /*************************************************************************************************
476 * <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: AFEInfoProcess
477 * <20><> <20><>: <20><>
478 * <20><><EFBFBD><EFBFBD>ֵ: <20><>
479 * <20><> <20><>: ÿ50mS<6D><53>ȡAFE<46><45>Ϣ<EFBFBD><CFA2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>µ<EFBFBD>ѹ<EFBFBD><D1B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><C2B6><EFBFBD><EFBFBD><EFBFBD>
480 *************************************************************************************************/
481 void AFEInfoProcess(void)
482 {
483 1 AFERdFlg();
484 1
485 1 bVADCFlg = 0;
C51 COMPILER V9.01 CALCULATE 02/06/2025 15:28:45 PAGE 9
486 1 AfeCalcuVol();
487 1 AfeCalcuTempe();
488 1
489 1 if(bCADCFlg) //<2F><>CADCת<43><D7AA><EFBFBD><EFBFBD><EFBFBD>ɺ󣬲Ŷ<F3A3ACB2>ȡAFE<46><45><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD><CFA2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
490 1 {
491 2 bCADCFlg = 0;
492 2 AfeCalcuCurr();
493 2 }
494 1 }
495
496
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 1760 ----
CONSTANT SIZE = 52 ----
XDATA SIZE = 2 25
PDATA SIZE = ---- ----
DATA SIZE = ---- ----
IDATA SIZE = ---- ----
BIT SIZE = ---- 2
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)