543 lines
30 KiB
Plaintext
543 lines
30 KiB
Plaintext
C51 COMPILER V9.01 CALCULATE 02/13/2025 10:07:28 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 * 函数名: CalcuTemp
|
||
17 * 参 数: 无
|
||
18 * 返回值: 无
|
||
19 * 描 述: 根据计算的阻值来查表,获取对应温度。温度变量保存的为开尔文温度*10
|
||
20 例如摄氏度25°,温度变量保存的值为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/13/2025 10:07:28 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 #if NTC_SL //SL热敏电阻
|
||
72 2 Temperature = (U16)(ucTempeMiddle-20)*10+(NTC103AT[i]-Tempcalcu)*10/(NTC103AT[i]-NTC103AT[i+1])+2731;
|
||
73 2 #else
|
||
Temperature = (U16)(ucTempeMiddle-50)*10+(NTC103AT[i]-Tempcalcu)*10/(NTC103AT[i]-NTC103AT[i+1])+2731;
|
||
#endif
|
||
76 2 }
|
||
77 1 return Temperature;
|
||
78 1 }
|
||
79
|
||
80
|
||
81 /*************************************************************************************************
|
||
82 * 函数名: AfeGetVol、AfeGetTempe
|
||
83 * 参 数: 无
|
||
84 * 返回值: 无
|
||
85 * 描 述: 从AFE读取电压、温度采集数据
|
||
86 *************************************************************************************************/
|
||
87 BOOL AfeGetVol(void)
|
||
88 {
|
||
89 1 U8 i;
|
||
90 1 BOOL Result=1;
|
||
91 1
|
||
92 1 for(i=ucCellNumOffset; i<(ucCellNum+ucCellNumOffset); i++)
|
||
93 1 {
|
||
94 2 if(!AFEReadReg(AFE_CELL1H+2*i, 2, (U8 xdata *)(&AFE.uiCell[i]))) //通过TWI读取VADC采集的电压值()
|
||
95 2 {
|
||
96 3 Result = 0;
|
||
97 3 return Result;
|
||
98 3 }
|
||
99 2 }
|
||
100 1
|
||
101 1 return Result;
|
||
102 1 }
|
||
103
|
||
104 BOOL AfeGetTempe(void)
|
||
105 {
|
||
106 1 BOOL Result=1;
|
||
107 1
|
||
108 1 if(!AFEReadReg(AFE_TS1H, 2, (U8 xdata *)&AFE.uiTS[0]))
|
||
109 1 {
|
||
110 2 Result = 0;
|
||
111 2 }
|
||
112 1 if(!AFEReadReg(AFE_TS2H, 2, (U8 xdata *)&AFE.uiTS[1]))
|
||
113 1 {
|
||
C51 COMPILER V9.01 CALCULATE 02/13/2025 10:07:28 PAGE 3
|
||
|
||
114 2 Result = 0;
|
||
115 2 }
|
||
116 1
|
||
117 1 if(!AFEReadReg(AFE_TEMP1H, 2, (U8 xdata *)&AFE.uiICTempe[0]))
|
||
118 1 {
|
||
119 2 Result = 0;
|
||
120 2 }
|
||
121 1 if(ucCellNum > 5) //6~10串应用时
|
||
122 1 {
|
||
123 2 if(!AFEReadReg(AFE_TEMP2H, 2, (U8 xdata *)&AFE.uiICTempe[1]))
|
||
124 2 {
|
||
125 3 Result = 0;
|
||
126 3 }
|
||
127 2 }
|
||
128 1
|
||
129 1 return Result;
|
||
130 1 }
|
||
131
|
||
132
|
||
133 /*************************************************************************************************
|
||
134 * 函数名: AfeCalcuTempe
|
||
135 * 参 数: 无
|
||
136 * 返回值: 无
|
||
137 * 描 述: 计算温度,更新uiTempeMax、uiTempeMin
|
||
138 *************************************************************************************************/
|
||
139 void AfeCalcuTempe(void)
|
||
140 {
|
||
141 1 U16 TempeData;
|
||
142 1
|
||
143 1 if(AfeGetTempe())
|
||
144 1 {
|
||
145 2 TempeData = CalcuTemp(AFE.uiTS[0]) + E2siTS0Offset; //计算外部温度1
|
||
146 2 #if (UART0_DEFINE != 0)
|
||
147 2 IrqUart0Dis();
|
||
148 2 #endif
|
||
149 2 #if (UART1_DEFINE != 0)
|
||
IrqUart1Dis();
|
||
#endif
|
||
152 2 #if (UART2_DEFINE != 0)
|
||
IrqUart2Dis();
|
||
#endif
|
||
155 2 Info.uiTS[0] = TempeData;
|
||
156 2 #if (UART0_DEFINE != 0)
|
||
157 2 IrqUart0En(); //开启uart0中断
|
||
158 2 #endif
|
||
159 2 #if (UART1_DEFINE != 0)
|
||
IrqUart1En(); //开启uart1中断
|
||
#endif
|
||
162 2 #if (UART2_DEFINE != 0)
|
||
IrqUart2En(); //初始化UART2中断使能,根据具体使用UART模块来进行选择
|
||
#endif
|
||
165 2 TempeData = (U32)AFE.uiICTempe[0]*17/10+31; //计算内部温度1
|
||
166 2 #if (UART0_DEFINE != 0)
|
||
167 2 IrqUart0Dis();
|
||
168 2 #endif
|
||
169 2 #if (UART1_DEFINE != 0)
|
||
IrqUart1Dis();
|
||
#endif
|
||
172 2 #if (UART2_DEFINE != 0)
|
||
IrqUart2Dis();
|
||
#endif
|
||
175 2 Info.uiICTempe[0] = TempeData;
|
||
C51 COMPILER V9.01 CALCULATE 02/13/2025 10:07:28 PAGE 4
|
||
|
||
176 2
|
||
177 2 #if (UART0_DEFINE != 0)
|
||
178 2 IrqUart0En(); //开启uart0中断
|
||
179 2 #endif
|
||
180 2 #if (UART1_DEFINE != 0)
|
||
IrqUart1En(); //开启uart1中断
|
||
#endif
|
||
183 2 #if (UART2_DEFINE != 0)
|
||
IrqUart2En(); //初始化UART2中断使能,根据具体使用UART模块来进行选择
|
||
#endif
|
||
186 2
|
||
187 2 if(ucCellNum > 5) //6~10串应用时
|
||
188 2 {
|
||
189 3 TempeData = (U32)AFE.uiICTempe[1]*17/10+31; //计算内部温度2
|
||
190 3 #if (UART0_DEFINE != 0)
|
||
191 3 IrqUart0Dis();
|
||
192 3 #endif
|
||
193 3 #if (UART1_DEFINE != 0)
|
||
IrqUart1Dis();
|
||
#endif
|
||
196 3 #if (UART2_DEFINE != 0)
|
||
IrqUart2Dis();
|
||
#endif
|
||
199 3 Info.uiICTempe[1] = TempeData;
|
||
200 3 #if (UART0_DEFINE != 0)
|
||
201 3 IrqUart0En(); //开启uart0中断
|
||
202 3 #endif
|
||
203 3 #if (UART1_DEFINE != 0)
|
||
IrqUart1En(); //开启uart1中断
|
||
#endif
|
||
206 3 #if (UART2_DEFINE != 0)
|
||
IrqUart2En(); //初始化UART2中断使能,根据具体使用UART模块来进行选择
|
||
#endif
|
||
209 3 }
|
||
210 2
|
||
211 2 uiTempeMin = Info.uiTS[0];
|
||
212 2 uiTempeMax = Info.uiTS[0];
|
||
213 2 if(bTempNum)
|
||
214 2 {
|
||
215 3 TempeData = CalcuTemp(AFE.uiTS[1]) + E2siTS1Offset; //计算外部温度2
|
||
216 3 #if (UART0_DEFINE != 0)
|
||
217 3 IrqUart0Dis();
|
||
218 3 #endif
|
||
219 3 #if (UART1_DEFINE != 0)
|
||
IrqUart1Dis();
|
||
#endif
|
||
222 3 #if (UART2_DEFINE != 0)
|
||
IrqUart2Dis();
|
||
#endif
|
||
225 3 Info.uiTS[1] = TempeData;
|
||
226 3 #if (UART0_DEFINE != 0)
|
||
227 3 IrqUart0En(); //开启uart0中断
|
||
228 3 #endif
|
||
229 3 #if (UART1_DEFINE != 0)
|
||
IrqUart1En(); //开启uart1中断
|
||
#endif
|
||
232 3 #if (UART2_DEFINE != 0)
|
||
IrqUart2En(); //初始化UART2中断使能,根据具体使用UART模块来进行选择
|
||
#endif
|
||
235 3
|
||
236 3 if(TempeData < uiTempeMin)
|
||
237 3 {
|
||
C51 COMPILER V9.01 CALCULATE 02/13/2025 10:07:28 PAGE 5
|
||
|
||
238 4 uiTempeMin = TempeData;
|
||
239 4 }
|
||
240 3 else
|
||
241 3 {
|
||
242 4 uiTempeMax = TempeData;
|
||
243 4 }
|
||
244 3 }
|
||
245 2 }
|
||
246 1 }
|
||
247
|
||
248
|
||
249 /*************************************************************************************************
|
||
250 * 函数名: AfeCalcuVol
|
||
251 * 参 数: 无
|
||
252 * 返回值: 无
|
||
253 * 描 述: 计算电压,同步更新最大值最小值uiVadcVmax、uiVadcVmin,用于断线判断
|
||
254 当没有平衡时,才更新uiCellVmax、uiCellVmin,用于保护判断
|
||
255 *************************************************************************************************/
|
||
256 void AfeCalcuVol(void)
|
||
257 {
|
||
258 1 U8 i;
|
||
259 1 U32 TempPackVol=0, TempCellVol=0;
|
||
260 1 uiVadcVmax = 0;
|
||
261 1 uiVadcVmin = 6000;
|
||
262 1
|
||
263 1 if(AfeGetVol())
|
||
264 1 {
|
||
265 2 for(i=ucCellNumOffset; i<(ucCellNum+ucCellNumOffset); i++)
|
||
266 2 {
|
||
267 3 TempCellVol = (U32)AFE.uiCell[i]*CALIVOL/E2uiVPackGain;
|
||
268 3
|
||
269 3 if(TempCellVol > uiVadcVmax) //计算最大值&最小值
|
||
270 3 {
|
||
271 4 uiVadcVmax = TempCellVol;
|
||
272 4 }
|
||
273 3 if(TempCellVol < uiVadcVmin)
|
||
274 3 {
|
||
275 4 uiVadcVmin = TempCellVol;
|
||
276 4 }
|
||
277 3
|
||
278 3 if(!bBalancingFlg) //if bCellOpenDecFlag this data will throw away
|
||
279 3 {
|
||
280 4 #if (UART0_DEFINE != 0)
|
||
281 4 IrqUart0Dis();
|
||
282 4 #endif
|
||
283 4 #if (UART1_DEFINE != 0)
|
||
IrqUart1Dis();
|
||
#endif
|
||
286 4 #if (UART2_DEFINE != 0)
|
||
IrqUart2Dis();
|
||
#endif
|
||
289 4 Info.uiVCell[i] = TempCellVol;
|
||
290 4 #if (UART0_DEFINE != 0)
|
||
291 4 IrqUart0En(); //开启uart0中断
|
||
292 4 #endif
|
||
293 4 #if (UART1_DEFINE != 0)
|
||
IrqUart1En(); //开启uart1中断
|
||
#endif
|
||
296 4 #if (UART2_DEFINE != 0)
|
||
IrqUart2En(); //初始化UART2中断使能,根据具体使用UART模块来进行选择
|
||
#endif
|
||
299 4 TempPackVol += TempCellVol;
|
||
C51 COMPILER V9.01 CALCULATE 02/13/2025 10:07:28 PAGE 6
|
||
|
||
300 4 }
|
||
301 3 }
|
||
302 2
|
||
303 2 if(!bBalancingFlg)
|
||
304 2 {
|
||
305 3 uiCellVmax = uiVadcVmax;
|
||
306 3 uiCellVmin = uiVadcVmin;
|
||
307 3
|
||
308 3 #if (UART0_DEFINE != 0)
|
||
309 3 IrqUart0Dis();
|
||
310 3 #endif
|
||
311 3 #if (UART1_DEFINE != 0)
|
||
IrqUart1Dis();
|
||
#endif
|
||
314 3 #if (UART2_DEFINE != 0)
|
||
IrqUart2Dis();
|
||
#endif
|
||
317 3 Info.ulVoltage = TempPackVol; //Calculate the total voltage
|
||
318 3 #if (UART0_DEFINE != 0)
|
||
319 3 IrqUart0En(); //开启uart0中断
|
||
320 3 #endif
|
||
321 3 #if (UART1_DEFINE != 0)
|
||
IrqUart1En(); //开启uart1中断
|
||
#endif
|
||
324 3 #if (UART2_DEFINE != 0)
|
||
IrqUart2En(); //初始化UART2中断使能,根据具体使用UART模块来进行选择
|
||
#endif
|
||
327 3 }
|
||
328 2 }
|
||
329 1 }
|
||
330
|
||
331
|
||
332 /*************************************************************************************************
|
||
333 * 函数名: CurTempOffset
|
||
334 * 参 数: 无
|
||
335 * 返回值: 无
|
||
336 * 描 述: 不同芯片温度下ADC的补偿值
|
||
337 *************************************************************************************************/
|
||
338 S16 code siCurTempOffset[2][13]=
|
||
339 { /**0****1****2****3***4***5***6***7***8***9**10**11**12**/
|
||
340 {-40, -30, -20, -10, 0, 10, 25, 35, 45, 55, 65, 75, 85},
|
||
341 { -5, -4, -3, -2, -1, -1, 0, 1, 1, 2, 3, 4, 5},
|
||
342 };
|
||
343
|
||
344 /*************************************************************************************************
|
||
345 * 函数名: OffsetCalculate()
|
||
346 * 参 数: 无
|
||
347 * 返回值: 无
|
||
348 * 描 述: 根据芯片内部温度实时调整0电流补偿值,以便消除温度对ADC采集产生的影响
|
||
349 *************************************************************************************************/
|
||
350 S16 OffsetCalculate(void)
|
||
351 {
|
||
352 1 S16 xdata siCadcTempOffset=0; //20220620
|
||
353 1 U8 xdata i;
|
||
354 1
|
||
355 1 for(i=0; i<12; i++)
|
||
356 1 {
|
||
357 2 if(Info.uiICTempe[0] <= (((S32)siCurTempOffset[0][i] + siCurTempOffset[0][i+1]) / 2 * 10 + 2731))
|
||
358 2 {
|
||
359 3 siCadcTempOffset = siCurTempOffset[1][i];
|
||
360 3 break;
|
||
361 3 }
|
||
C51 COMPILER V9.01 CALCULATE 02/13/2025 10:07:28 PAGE 7
|
||
|
||
362 2 }
|
||
363 1 return siCadcTempOffset;
|
||
364 1 }
|
||
365
|
||
366 /*************************************************************************************************
|
||
367 * 函数名: AfeCalcuCurr
|
||
368 * 参 数: 无
|
||
369 * 返回值: 无
|
||
370 * 描 述: 计算CADC采集的电流数据
|
||
371 *************************************************************************************************/
|
||
372 void AfeCalcuCurr(void)
|
||
373 {
|
||
374 1 U8 i;
|
||
375 1 S32 Tempdata=0;
|
||
376 1
|
||
377 1 AFEReadReg(AFE_CURH, 2, (U8 xdata *)&AFE.siCurr); //通过TWI读取CADC采集的电流值
|
||
378 1
|
||
379 1 if((AFE.siCurr&0x1000) != 0) //根据bit12判断是否为负数(放电电流为负值),如为负值高位补0
|
||
380 1 {
|
||
381 2 AFE.siCurr|=0xE000;
|
||
382 2 }
|
||
383 1 slCadcCurrent = (S32)CALICUR*(AFE.siCurr-E2siCadcOffset+OffsetCalculate())/E2siCadcGain;
|
||
384 1
|
||
385 1 slCadcCurBuf[ucCadcCnt] = slCadcCurrent; //对连续采集的16次电流取平均值,作为当前电流值
|
||
386 1 if(++ucCadcCnt >= 16)
|
||
387 1 {
|
||
388 2 ucCadcCnt = 0;
|
||
389 2 }
|
||
390 1 for(i=0; i<16; i++)
|
||
391 1 {
|
||
392 2 Tempdata += slCadcCurBuf[i];
|
||
393 2 }
|
||
394 1 slCadcCurAverage = Tempdata/16;
|
||
395 1
|
||
396 1 bDSGING = 0; //根据电流判定充放电状态
|
||
397 1 bCHGING = 0;
|
||
398 1 if(slCadcCurAverage < (-E2siDfilterCur))
|
||
399 1 {
|
||
400 2 if(++ucDsgingCheckCnt >= TIME_50MS_500MS) //充放电状态检测延时10*50mS
|
||
401 2 {
|
||
402 3 ucDsgingCheckCnt = TIME_50MS_500MS;
|
||
403 3 bDSGING = 1;
|
||
404 3 #if (UART0_DEFINE != 0)
|
||
405 3 IrqUart0Dis();
|
||
406 3 #endif
|
||
407 3 #if (UART1_DEFINE != 0)
|
||
IrqUart1Dis();
|
||
#endif
|
||
410 3 #if (UART2_DEFINE != 0)
|
||
IrqUart2Dis();
|
||
#endif
|
||
413 3 Info.slCurr = slCadcCurAverage;
|
||
414 3 #if (UART0_DEFINE != 0)
|
||
415 3 IrqUart0En(); //开启uart0中断
|
||
416 3 #endif
|
||
417 3 #if (UART1_DEFINE != 0)
|
||
IrqUart1En(); //开启uart1中断
|
||
#endif
|
||
420 3 #if (UART2_DEFINE != 0)
|
||
IrqUart2En(); //初始化UART2中断使能,根据具体使用UART模块来进行选择
|
||
#endif
|
||
423 3 }
|
||
C51 COMPILER V9.01 CALCULATE 02/13/2025 10:07:28 PAGE 8
|
||
|
||
424 2 }
|
||
425 1 else if(slCadcCurAverage > E2siDfilterCur)
|
||
426 1 {
|
||
427 2 if(++ucChgingCheckCnt >= TIME_50MS_500MS) //充放电状态检测延时10*50mS
|
||
428 2 {
|
||
429 3 ucChgingCheckCnt = TIME_50MS_500MS;
|
||
430 3 bCHGING = 1;
|
||
431 3 McuPWM2Set(4000, 100);
|
||
432 3 #if (UART0_DEFINE != 0)
|
||
433 3 IrqUart0Dis();
|
||
434 3 #endif
|
||
435 3 #if (UART1_DEFINE != 0)
|
||
IrqUart1Dis();
|
||
#endif
|
||
438 3 #if (UART2_DEFINE != 0)
|
||
IrqUart2Dis();
|
||
#endif
|
||
441 3 Info.slCurr = slCadcCurAverage;
|
||
442 3 #if (UART0_DEFINE != 0)
|
||
443 3 IrqUart0En(); //开启uart0中断
|
||
444 3 #endif
|
||
445 3 #if (UART1_DEFINE != 0)
|
||
IrqUart1En(); //开启uart1中断
|
||
#endif
|
||
448 3 #if (UART2_DEFINE != 0)
|
||
IrqUart2En(); //初始化UART2中断使能,根据具体使用UART模块来进行选择
|
||
#endif
|
||
451 3 }
|
||
452 2 }
|
||
453 1 else
|
||
454 1 {
|
||
455 2 #if (UART0_DEFINE != 0)
|
||
456 2 IrqUart0Dis();
|
||
457 2 #endif
|
||
458 2 #if (UART1_DEFINE != 0)
|
||
IrqUart1Dis();
|
||
#endif
|
||
461 2 #if (UART2_DEFINE != 0)
|
||
IrqUart2Dis();
|
||
#endif
|
||
464 2 Info.slCurr = 0;
|
||
465 2 #if (UART0_DEFINE != 0)
|
||
466 2 IrqUart0En(); //开启uart0中断
|
||
467 2 #endif
|
||
468 2 #if (UART1_DEFINE != 0)
|
||
IrqUart1En(); //开启uart1中断
|
||
#endif
|
||
471 2 #if (UART2_DEFINE != 0)
|
||
IrqUart2En(); //初始化UART2中断使能,根据具体使用UART模块来进行选择
|
||
#endif
|
||
474 2 }
|
||
475 1 }
|
||
476
|
||
477
|
||
478 /*************************************************************************************************
|
||
479 * 函数名: AFEInfoProcess
|
||
480 * 参 数: 无
|
||
481 * 返回值: 无
|
||
482 * 描 述: 每50mS读取AFE信息,并更新电压、电流、温度数据
|
||
483 *************************************************************************************************/
|
||
484 void AFEInfoProcess(void)
|
||
485 {
|
||
C51 COMPILER V9.01 CALCULATE 02/13/2025 10:07:28 PAGE 9
|
||
|
||
486 1 AFERdFlg();
|
||
487 1
|
||
488 1 bVADCFlg = 0;
|
||
489 1 AfeCalcuVol();
|
||
490 1 AfeCalcuTempe();
|
||
491 1
|
||
492 1 if(bCADCFlg) //当CADC转换完成后,才读取AFE电流信息并计算
|
||
493 1 {
|
||
494 2 bCADCFlg = 0;
|
||
495 2 AfeCalcuCurr();
|
||
496 2 }
|
||
497 1 }
|
||
498
|
||
499
|
||
|
||
|
||
MODULE INFORMATION: STATIC OVERLAYABLE
|
||
CODE SIZE = 1772 ----
|
||
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)
|