2025-02-08 07:27:19 +00:00
|
|
|
|
C51 COMPILER V9.01 CALCULATE 02/08/2025 15:18:20 PAGE 1
|
2025-02-06 07:35:32 +00:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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--)
|
2025-02-08 07:27:19 +00:00
|
|
|
|
C51 COMPILER V9.01 CALCULATE 02/08/2025 15:18:20 PAGE 2
|
2025-02-06 07:35:32 +00:00
|
|
|
|
|
|
|
|
|
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;
|
2025-02-08 07:27:19 +00:00
|
|
|
|
71 2 #if NTC_SL //SL<53><4C><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
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 * <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: AfeGetVol<6F><6C>AfeGetTempe
|
|
|
|
|
83 * <20><> <20><>: <20><>
|
|
|
|
|
84 * <20><><EFBFBD><EFBFBD>ֵ: <20><>
|
|
|
|
|
85 * <20><> <20><>: <20><>AFE<46><45>ȡ<EFBFBD><C8A1>ѹ<EFBFBD><D1B9><EFBFBD>¶Ȳɼ<C8B2><C9BC><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
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]))) //ͨ<><CDA8>TWI<57><49>ȡVADC<44>ɼ<EFBFBD><C9BC>ĵ<EFBFBD>ѹֵ()
|
|
|
|
|
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/08/2025 15:18:20 PAGE 3
|
2025-02-06 07:35:32 +00:00
|
|
|
|
|
2025-02-08 07:27:19 +00:00
|
|
|
|
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<31><30>Ӧ<EFBFBD><D3A6>ʱ
|
|
|
|
|
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 * <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: AfeCalcuTempe
|
|
|
|
|
135 * <20><> <20><>: <20><>
|
|
|
|
|
136 * <20><><EFBFBD><EFBFBD>ֵ: <20><>
|
|
|
|
|
137 * <20><> <20><>: <20><><EFBFBD><EFBFBD><EFBFBD>¶ȣ<C2B6><C8A3><EFBFBD><EFBFBD><EFBFBD>uiTempeMax<61><78>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; //<2F><><EFBFBD><EFBFBD><EFBFBD>ⲿ<EFBFBD>¶<EFBFBD>1
|
|
|
|
|
146 2 #if (UART0_DEFINE != 0)
|
|
|
|
|
147 2 IrqUart0Dis();
|
|
|
|
|
148 2 #endif
|
|
|
|
|
149 2 #if (UART1_DEFINE != 0)
|
2025-02-06 07:35:32 +00:00
|
|
|
|
IrqUart1Dis();
|
|
|
|
|
#endif
|
2025-02-08 07:27:19 +00:00
|
|
|
|
152 2 #if (UART2_DEFINE != 0)
|
2025-02-06 07:35:32 +00:00
|
|
|
|
IrqUart2Dis();
|
|
|
|
|
#endif
|
2025-02-08 07:27:19 +00:00
|
|
|
|
155 2 Info.uiTS[0] = TempeData;
|
|
|
|
|
156 2 #if (UART0_DEFINE != 0)
|
|
|
|
|
157 2 IrqUart0En(); //<2F><><EFBFBD><EFBFBD>uart0<74>ж<EFBFBD>
|
|
|
|
|
158 2 #endif
|
|
|
|
|
159 2 #if (UART1_DEFINE != 0)
|
2025-02-06 07:35:32 +00:00
|
|
|
|
IrqUart1En(); //<2F><><EFBFBD><EFBFBD>uart1<74>ж<EFBFBD>
|
|
|
|
|
#endif
|
2025-02-08 07:27:19 +00:00
|
|
|
|
162 2 #if (UART2_DEFINE != 0)
|
2025-02-06 07:35:32 +00:00
|
|
|
|
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
|
2025-02-08 07:27:19 +00:00
|
|
|
|
165 2 TempeData = (U32)AFE.uiICTempe[0]*17/10+31; //<2F><><EFBFBD><EFBFBD><EFBFBD>ڲ<EFBFBD><DAB2>¶<EFBFBD>1
|
|
|
|
|
166 2 #if (UART0_DEFINE != 0)
|
|
|
|
|
167 2 IrqUart0Dis();
|
|
|
|
|
168 2 #endif
|
|
|
|
|
169 2 #if (UART1_DEFINE != 0)
|
2025-02-06 07:35:32 +00:00
|
|
|
|
IrqUart1Dis();
|
|
|
|
|
#endif
|
2025-02-08 07:27:19 +00:00
|
|
|
|
172 2 #if (UART2_DEFINE != 0)
|
2025-02-06 07:35:32 +00:00
|
|
|
|
IrqUart2Dis();
|
|
|
|
|
#endif
|
2025-02-08 07:27:19 +00:00
|
|
|
|
175 2 Info.uiICTempe[0] = TempeData;
|
|
|
|
|
C51 COMPILER V9.01 CALCULATE 02/08/2025 15:18:20 PAGE 4
|
2025-02-06 07:35:32 +00:00
|
|
|
|
|
2025-02-08 07:27:19 +00:00
|
|
|
|
176 2
|
|
|
|
|
177 2 #if (UART0_DEFINE != 0)
|
|
|
|
|
178 2 IrqUart0En(); //<2F><><EFBFBD><EFBFBD>uart0<74>ж<EFBFBD>
|
|
|
|
|
179 2 #endif
|
|
|
|
|
180 2 #if (UART1_DEFINE != 0)
|
2025-02-06 07:35:32 +00:00
|
|
|
|
IrqUart1En(); //<2F><><EFBFBD><EFBFBD>uart1<74>ж<EFBFBD>
|
|
|
|
|
#endif
|
2025-02-08 07:27:19 +00:00
|
|
|
|
183 2 #if (UART2_DEFINE != 0)
|
2025-02-06 07:35:32 +00:00
|
|
|
|
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
|
2025-02-08 07:27:19 +00:00
|
|
|
|
186 2
|
|
|
|
|
187 2 if(ucCellNum > 5) //6~10<31><30>Ӧ<EFBFBD><D3A6>ʱ
|
|
|
|
|
188 2 {
|
|
|
|
|
189 3 TempeData = (U32)AFE.uiICTempe[1]*17/10+31; //<2F><><EFBFBD><EFBFBD><EFBFBD>ڲ<EFBFBD><DAB2>¶<EFBFBD>2
|
|
|
|
|
190 3 #if (UART0_DEFINE != 0)
|
|
|
|
|
191 3 IrqUart0Dis();
|
|
|
|
|
192 3 #endif
|
|
|
|
|
193 3 #if (UART1_DEFINE != 0)
|
2025-02-06 07:35:32 +00:00
|
|
|
|
IrqUart1Dis();
|
|
|
|
|
#endif
|
2025-02-08 07:27:19 +00:00
|
|
|
|
196 3 #if (UART2_DEFINE != 0)
|
2025-02-06 07:35:32 +00:00
|
|
|
|
IrqUart2Dis();
|
|
|
|
|
#endif
|
2025-02-08 07:27:19 +00:00
|
|
|
|
199 3 Info.uiICTempe[1] = TempeData;
|
|
|
|
|
200 3 #if (UART0_DEFINE != 0)
|
|
|
|
|
201 3 IrqUart0En(); //<2F><><EFBFBD><EFBFBD>uart0<74>ж<EFBFBD>
|
|
|
|
|
202 3 #endif
|
|
|
|
|
203 3 #if (UART1_DEFINE != 0)
|
2025-02-06 07:35:32 +00:00
|
|
|
|
IrqUart1En(); //<2F><><EFBFBD><EFBFBD>uart1<74>ж<EFBFBD>
|
|
|
|
|
#endif
|
2025-02-08 07:27:19 +00:00
|
|
|
|
206 3 #if (UART2_DEFINE != 0)
|
2025-02-06 07:35:32 +00:00
|
|
|
|
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
|
2025-02-08 07:27:19 +00:00
|
|
|
|
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; //<2F><><EFBFBD><EFBFBD><EFBFBD>ⲿ<EFBFBD>¶<EFBFBD>2
|
|
|
|
|
216 3 #if (UART0_DEFINE != 0)
|
|
|
|
|
217 3 IrqUart0Dis();
|
|
|
|
|
218 3 #endif
|
|
|
|
|
219 3 #if (UART1_DEFINE != 0)
|
2025-02-06 07:35:32 +00:00
|
|
|
|
IrqUart1Dis();
|
|
|
|
|
#endif
|
2025-02-08 07:27:19 +00:00
|
|
|
|
222 3 #if (UART2_DEFINE != 0)
|
2025-02-06 07:35:32 +00:00
|
|
|
|
IrqUart2Dis();
|
|
|
|
|
#endif
|
2025-02-08 07:27:19 +00:00
|
|
|
|
225 3 Info.uiTS[1] = TempeData;
|
|
|
|
|
226 3 #if (UART0_DEFINE != 0)
|
|
|
|
|
227 3 IrqUart0En(); //<2F><><EFBFBD><EFBFBD>uart0<74>ж<EFBFBD>
|
|
|
|
|
228 3 #endif
|
|
|
|
|
229 3 #if (UART1_DEFINE != 0)
|
2025-02-06 07:35:32 +00:00
|
|
|
|
IrqUart1En(); //<2F><><EFBFBD><EFBFBD>uart1<74>ж<EFBFBD>
|
|
|
|
|
#endif
|
2025-02-08 07:27:19 +00:00
|
|
|
|
232 3 #if (UART2_DEFINE != 0)
|
2025-02-06 07:35:32 +00:00
|
|
|
|
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
|
2025-02-08 07:27:19 +00:00
|
|
|
|
235 3
|
|
|
|
|
236 3 if(TempeData < uiTempeMin)
|
|
|
|
|
237 3 {
|
|
|
|
|
C51 COMPILER V9.01 CALCULATE 02/08/2025 15:18:20 PAGE 5
|
2025-02-06 07:35:32 +00:00
|
|
|
|
|
2025-02-08 07:27:19 +00:00
|
|
|
|
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 * <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: AfeCalcuVol
|
|
|
|
|
251 * <20><> <20><>: <20><>
|
|
|
|
|
252 * <20><><EFBFBD><EFBFBD>ֵ: <20><>
|
|
|
|
|
253 * <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>
|
|
|
|
|
254 <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>
|
|
|
|
|
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) //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ&<26><>Сֵ
|
|
|
|
|
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)
|
2025-02-06 07:35:32 +00:00
|
|
|
|
IrqUart1Dis();
|
|
|
|
|
#endif
|
2025-02-08 07:27:19 +00:00
|
|
|
|
286 4 #if (UART2_DEFINE != 0)
|
2025-02-06 07:35:32 +00:00
|
|
|
|
IrqUart2Dis();
|
|
|
|
|
#endif
|
2025-02-08 07:27:19 +00:00
|
|
|
|
289 4 Info.uiVCell[i] = TempCellVol;
|
|
|
|
|
290 4 #if (UART0_DEFINE != 0)
|
|
|
|
|
291 4 IrqUart0En(); //<2F><><EFBFBD><EFBFBD>uart0<74>ж<EFBFBD>
|
|
|
|
|
292 4 #endif
|
|
|
|
|
293 4 #if (UART1_DEFINE != 0)
|
2025-02-06 07:35:32 +00:00
|
|
|
|
IrqUart1En(); //<2F><><EFBFBD><EFBFBD>uart1<74>ж<EFBFBD>
|
|
|
|
|
#endif
|
2025-02-08 07:27:19 +00:00
|
|
|
|
296 4 #if (UART2_DEFINE != 0)
|
2025-02-06 07:35:32 +00:00
|
|
|
|
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
|
2025-02-08 07:27:19 +00:00
|
|
|
|
299 4 TempPackVol += TempCellVol;
|
|
|
|
|
C51 COMPILER V9.01 CALCULATE 02/08/2025 15:18:20 PAGE 6
|
2025-02-06 07:35:32 +00:00
|
|
|
|
|
2025-02-08 07:27:19 +00:00
|
|
|
|
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)
|
2025-02-06 07:35:32 +00:00
|
|
|
|
IrqUart1Dis();
|
|
|
|
|
#endif
|
2025-02-08 07:27:19 +00:00
|
|
|
|
314 3 #if (UART2_DEFINE != 0)
|
2025-02-06 07:35:32 +00:00
|
|
|
|
IrqUart2Dis();
|
|
|
|
|
#endif
|
2025-02-08 07:27:19 +00:00
|
|
|
|
317 3 Info.ulVoltage = TempPackVol; //Calculate the total voltage
|
|
|
|
|
318 3 #if (UART0_DEFINE != 0)
|
|
|
|
|
319 3 IrqUart0En(); //<2F><><EFBFBD><EFBFBD>uart0<74>ж<EFBFBD>
|
|
|
|
|
320 3 #endif
|
|
|
|
|
321 3 #if (UART1_DEFINE != 0)
|
2025-02-06 07:35:32 +00:00
|
|
|
|
IrqUart1En(); //<2F><><EFBFBD><EFBFBD>uart1<74>ж<EFBFBD>
|
|
|
|
|
#endif
|
2025-02-08 07:27:19 +00:00
|
|
|
|
324 3 #if (UART2_DEFINE != 0)
|
2025-02-06 07:35:32 +00:00
|
|
|
|
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
|
2025-02-08 07:27:19 +00:00
|
|
|
|
327 3 }
|
|
|
|
|
328 2 }
|
|
|
|
|
329 1 }
|
|
|
|
|
330
|
|
|
|
|
331
|
|
|
|
|
332 /*************************************************************************************************
|
|
|
|
|
333 * <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: CurTempOffset
|
|
|
|
|
334 * <20><> <20><>: <20><>
|
|
|
|
|
335 * <20><><EFBFBD><EFBFBD>ֵ: <20><>
|
|
|
|
|
336 * <20><> <20><>: <20><>ͬоƬ<D0BE>¶<EFBFBD><C2B6><EFBFBD>ADC<44>IJ<EFBFBD><C4B2><EFBFBD>ֵ
|
|
|
|
|
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 * <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: OffsetCalculate()
|
|
|
|
|
346 * <20><> <20><>: <20><>
|
|
|
|
|
347 * <20><><EFBFBD><EFBFBD>ֵ: <20><>
|
|
|
|
|
348 * <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>
|
|
|
|
|
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/08/2025 15:18:20 PAGE 7
|
2025-02-06 07:35:32 +00:00
|
|
|
|
|
2025-02-08 07:27:19 +00:00
|
|
|
|
362 2 }
|
|
|
|
|
363 1 return siCadcTempOffset;
|
|
|
|
|
364 1 }
|
|
|
|
|
365
|
|
|
|
|
366 /*************************************************************************************************
|
|
|
|
|
367 * <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: AfeCalcuCurr
|
|
|
|
|
368 * <20><> <20><>: <20><>
|
|
|
|
|
369 * <20><><EFBFBD><EFBFBD>ֵ: <20><>
|
|
|
|
|
370 * <20><> <20><>: <20><><EFBFBD><EFBFBD>CADC<44>ɼ<EFBFBD><C9BC>ĵ<EFBFBD><C4B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
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); //ͨ<><CDA8>TWI<57><49>ȡCADC<44>ɼ<EFBFBD><C9BC>ĵ<EFBFBD><C4B5><EFBFBD>ֵ
|
|
|
|
|
378 1
|
|
|
|
|
379 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
|
|
|
|
|
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; //<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>ֵ
|
|
|
|
|
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; //<2F><><EFBFBD>ݵ<EFBFBD><DDB5><EFBFBD><EFBFBD>ж<EFBFBD><D0B6><EFBFBD><EFBFBD>ŵ<EFBFBD>״̬
|
|
|
|
|
397 1 bCHGING = 0;
|
|
|
|
|
398 1 if(slCadcCurAverage < (-E2siDfilterCur))
|
|
|
|
|
399 1 {
|
|
|
|
|
400 2 if(++ucDsgingCheckCnt >= TIME_50MS_500MS) //<2F><><EFBFBD>ŵ<EFBFBD>״̬<D7B4><CCAC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ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)
|
2025-02-06 07:35:32 +00:00
|
|
|
|
IrqUart1Dis();
|
|
|
|
|
#endif
|
2025-02-08 07:27:19 +00:00
|
|
|
|
410 3 #if (UART2_DEFINE != 0)
|
2025-02-06 07:35:32 +00:00
|
|
|
|
IrqUart2Dis();
|
|
|
|
|
#endif
|
2025-02-08 07:27:19 +00:00
|
|
|
|
413 3 Info.slCurr = slCadcCurAverage;
|
|
|
|
|
414 3 #if (UART0_DEFINE != 0)
|
|
|
|
|
415 3 IrqUart0En(); //<2F><><EFBFBD><EFBFBD>uart0<74>ж<EFBFBD>
|
|
|
|
|
416 3 #endif
|
|
|
|
|
417 3 #if (UART1_DEFINE != 0)
|
2025-02-06 07:35:32 +00:00
|
|
|
|
IrqUart1En(); //<2F><><EFBFBD><EFBFBD>uart1<74>ж<EFBFBD>
|
|
|
|
|
#endif
|
2025-02-08 07:27:19 +00:00
|
|
|
|
420 3 #if (UART2_DEFINE != 0)
|
2025-02-06 07:35:32 +00:00
|
|
|
|
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
|
2025-02-08 07:27:19 +00:00
|
|
|
|
423 3 }
|
|
|
|
|
C51 COMPILER V9.01 CALCULATE 02/08/2025 15:18:20 PAGE 8
|
2025-02-06 07:35:32 +00:00
|
|
|
|
|
2025-02-08 07:27:19 +00:00
|
|
|
|
424 2 }
|
|
|
|
|
425 1 else if(slCadcCurAverage > E2siDfilterCur)
|
|
|
|
|
426 1 {
|
|
|
|
|
427 2 if(++ucChgingCheckCnt >= TIME_50MS_500MS) //<2F><><EFBFBD>ŵ<EFBFBD>״̬<D7B4><CCAC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ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)
|
2025-02-06 07:35:32 +00:00
|
|
|
|
IrqUart1Dis();
|
|
|
|
|
#endif
|
2025-02-08 07:27:19 +00:00
|
|
|
|
438 3 #if (UART2_DEFINE != 0)
|
2025-02-06 07:35:32 +00:00
|
|
|
|
IrqUart2Dis();
|
|
|
|
|
#endif
|
2025-02-08 07:27:19 +00:00
|
|
|
|
441 3 Info.slCurr = slCadcCurAverage;
|
|
|
|
|
442 3 #if (UART0_DEFINE != 0)
|
|
|
|
|
443 3 IrqUart0En(); //<2F><><EFBFBD><EFBFBD>uart0<74>ж<EFBFBD>
|
|
|
|
|
444 3 #endif
|
|
|
|
|
445 3 #if (UART1_DEFINE != 0)
|
2025-02-06 07:35:32 +00:00
|
|
|
|
IrqUart1En(); //<2F><><EFBFBD><EFBFBD>uart1<74>ж<EFBFBD>
|
|
|
|
|
#endif
|
2025-02-08 07:27:19 +00:00
|
|
|
|
448 3 #if (UART2_DEFINE != 0)
|
2025-02-06 07:35:32 +00:00
|
|
|
|
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
|
2025-02-08 07:27:19 +00:00
|
|
|
|
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)
|
2025-02-06 07:35:32 +00:00
|
|
|
|
IrqUart1Dis();
|
|
|
|
|
#endif
|
2025-02-08 07:27:19 +00:00
|
|
|
|
461 2 #if (UART2_DEFINE != 0)
|
2025-02-06 07:35:32 +00:00
|
|
|
|
IrqUart2Dis();
|
|
|
|
|
#endif
|
2025-02-08 07:27:19 +00:00
|
|
|
|
464 2 Info.slCurr = 0;
|
|
|
|
|
465 2 #if (UART0_DEFINE != 0)
|
|
|
|
|
466 2 IrqUart0En(); //<2F><><EFBFBD><EFBFBD>uart0<74>ж<EFBFBD>
|
|
|
|
|
467 2 #endif
|
|
|
|
|
468 2 #if (UART1_DEFINE != 0)
|
2025-02-06 07:35:32 +00:00
|
|
|
|
IrqUart1En(); //<2F><><EFBFBD><EFBFBD>uart1<74>ж<EFBFBD>
|
|
|
|
|
#endif
|
2025-02-08 07:27:19 +00:00
|
|
|
|
471 2 #if (UART2_DEFINE != 0)
|
2025-02-06 07:35:32 +00:00
|
|
|
|
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
|
2025-02-08 07:27:19 +00:00
|
|
|
|
474 2 }
|
|
|
|
|
475 1 }
|
|
|
|
|
476
|
|
|
|
|
477
|
|
|
|
|
478 /*************************************************************************************************
|
|
|
|
|
479 * <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: AFEInfoProcess
|
|
|
|
|
480 * <20><> <20><>: <20><>
|
|
|
|
|
481 * <20><><EFBFBD><EFBFBD>ֵ: <20><>
|
|
|
|
|
482 * <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>
|
|
|
|
|
483 *************************************************************************************************/
|
|
|
|
|
484 void AFEInfoProcess(void)
|
|
|
|
|
485 {
|
|
|
|
|
C51 COMPILER V9.01 CALCULATE 02/08/2025 15:18:20 PAGE 9
|
2025-02-06 07:35:32 +00:00
|
|
|
|
|
2025-02-08 07:27:19 +00:00
|
|
|
|
486 1 AFERdFlg();
|
|
|
|
|
487 1
|
|
|
|
|
488 1 bVADCFlg = 0;
|
|
|
|
|
489 1 AfeCalcuVol();
|
|
|
|
|
490 1 AfeCalcuTempe();
|
|
|
|
|
491 1
|
|
|
|
|
492 1 if(bCADCFlg) //<2F><>CADCת<43><D7AA><EFBFBD><EFBFBD><EFBFBD>ɺŶ<F3A3ACB2>ȡAFE<46><45><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD><CFA2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
493 1 {
|
|
|
|
|
494 2 bCADCFlg = 0;
|
|
|
|
|
495 2 AfeCalcuCurr();
|
|
|
|
|
496 2 }
|
|
|
|
|
497 1 }
|
|
|
|
|
498
|
|
|
|
|
499
|
2025-02-06 07:35:32 +00:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
MODULE INFORMATION: STATIC OVERLAYABLE
|
2025-02-08 07:27:19 +00:00
|
|
|
|
CODE SIZE = 1772 ----
|
2025-02-06 07:35:32 +00:00
|
|
|
|
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)
|