C51 COMPILER V9.01 AFE 02/08/2025 15:18:20 PAGE 1 C51 COMPILER V9.01, COMPILATION OF MODULE AFE OBJECT MODULE PLACED IN .\output\AFE.obj COMPILER INVOKED BY: D:\Tool\Keil\C51\BIN\C51.EXE code_drv\AFE.c LARGE OPTIMIZE(7,SIZE) REGFILE(.\output\MCUCore_Load.OR -C) BROWSE INTVECTOR(0X1000) INCDIR(.\header_app;.\header_drv;.\code_gasguage;.\code_classb\iec60730_lib\include;.\code_c -lassb\iec60730_proc\Include;.\code_classb\config) DEBUG OBJECTEXTEND PRINT(.\output\AFE.lst) OBJECT(.\output\AFE.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 //AFEÏà¹ØµÄ±äÁ¿ 12 BOOL bAfeAlarmFlg; 13 BOOL bCADCFlg; 14 BOOL bVADCFlg; 15 BOOL bAfeI2CRWErrFlg; 16 BOOL bAfeErr; 17 U8 data ucCellNum; //µ±Ç°Ó²¼þµçо´®Êý 18 U8 data ucCellNumOffset; //µ±Ç°Ó²¼þµçоÁ¬½Ó·½Ê½¶ÔÓ¦µÄÆ«ÒÆ£¬ÓÃÓÚ³ÌÐò¶ÁÈ¡AFE¶ÔÓ¦¼Ä -´æÆ÷ 19 U16 data uiCellVmax; //µçоµçѹ×î´óÖµ 20 U16 data uiCellVmin; //µçоµçѹ×îСֵ 21 U16 xdata uiVadcVmax; //ADC²É¼¯×î´óÖµ 22 U16 xdata uiVadcVmin; //ADC²É¼¯×îСֵ 23 U8 xdata ucTempeMiddle; 24 U16 xdata uiTempeMin; 25 U16 xdata uiTempeMax; 26 S32 xdata slCadcCurrent; 27 S32 xdata slCadcCurAverage; 28 U8 xdata ucCadcCnt; 29 S32 xdata slCadcCurBuf[16]; 30 U8 xdata ucAfeI2CErrDelayCnt; 31 SYSINFOR xdata Info; //¾­¹ý¼ÆËãµÄÖµ 32 AFEDATA xdata AFE; //AFE¼Ä´æÆ÷¶ÁÈ¡µÄÖµ 33 AFEREG xdata REG; //AFE¼Ä´æÆ÷Ô¤ÉèÖµ 34 35 36 37 /************************************************************************************************* 38 * º¯ÊýÃû: AFETwiCheck 39 * ²Î Êý: ÎÞ 40 * ·µ»ØÖµ: ÎÞ 41 * Ãè Êö: Á¬Ðø5S¼ì²âµ½AFEµÄI2CͨѶ´íÎó£¬ÔòÖÃλbAfeErr=1 42 *************************************************************************************************/ 43 void AFETwiCheck(void) 44 { 45 1 if(bAfeI2CRWErrFlg) 46 1 { 47 2 if(++ucAfeI2CErrDelayCnt >= TIME_1S_5S) 48 2 { 49 3 bAfeErr = 1; 50 3 ucAfeI2CErrDelayCnt = TIME_1S_5S; 51 3 } 52 2 } C51 COMPILER V9.01 AFE 02/08/2025 15:18:20 PAGE 2 53 1 else 54 1 { 55 2 ucAfeI2CErrDelayCnt = 0; 56 2 } 57 1 } 58 59 60 /************************************************************************************************* 61 * º¯ÊýÃû: AFEWriteReg 62 * ²Î Êý: Reg£º¼Ä´æÆ÷µØÖ· 63 WrBuf£ºÐ´µÄÊý¾Ý£º1ByteÊý¾Ý+1Byte CRC 64 * ·µ»ØÖµ: 1:³É¹¦£»0:ʧ°Ü 65 * Ãè Êö: дAFE¼Ä´æÆ÷£¬Ã¿´Îдһ¸ö¼Ä´æÆ÷ 66 *************************************************************************************************/ 67 BOOL AFEWriteReg(U8 Reg, U8 Length, U8 xdata *WrBuf) 68 { 69 1 BOOL Result = 0; 70 1 U8 Times = 0; 71 1 U8 i; 72 1 73 1 if(!bAfeErr) 74 1 { 75 2 for(i=0; i= 5) 101 3 { 102 4 break; 103 4 } 104 3 else 105 3 { 106 4 Times = 0; 107 4 Reg++; 108 4 WrBuf++; 109 4 } 110 3 Delay1ms(1); 111 3 } 112 2 } 113 1 bAfeI2CRWErrFlg = !Result; //±ê¼ÇͨѶÊÇ·ñÕý³£ 114 1 C51 COMPILER V9.01 AFE 02/08/2025 15:18:20 PAGE 3 115 1 return Result; 116 1 } 117 118 119 /************************************************************************************************* 120 * º¯ÊýÃû: AFEReadReg 121 * ²Î Êý: Reg£º¼Ä´æÆ÷µØÖ· 122 RdBuf£º¶ÁµÄÊý¾Ý£º2ByteÊý¾Ý+1Byte CRC 123 * ·µ»ØÖµ: 1:³É¹¦£»0:ʧ°Ü 124 * Ãè Êö: ¶ÁAFE¼Ä´æÆ÷£¬Ã¿´ÎÁ¬Ðø¶ÁÁ½¸ö¼Ä´æÆ÷ 125 *************************************************************************************************/ 126 BOOL AFEReadReg(U8 Reg, U8 Length , U8 xdata *RdBuf) 127 { 128 1 BOOL Result = 0; 129 1 U8 Times = 0; 130 1 131 1 if(!bAfeErr) 132 1 { 133 2 while(Times++ < 5) //Èç¹û¶ÁÊý³ö´í£¬ÔòTry 5´Î 134 2 { 135 3 #ifdef TWI_Hardware_Module 136 3 Result = TwiRead(AFE_ID, Reg, TWI_ADDR_1B, Length, TWI_CRC_YES, RdBuf); 137 3 #else Result = TwiRead(AFE_ID, Reg, Length, RdBuf); #endif 140 3 if(Result) //Èç¹û¶ÁÊý³É¹¦ÇÒCRCУÑéÕýÈ·£¬ÔòÍ˳öÑ­»··µ»Ø³É¹¦±ê±êÖ¾ 141 3 { 142 4 break; 143 4 } 144 3 else //Èç¹ûTWI¶ÁÊý»òCRCУÑéʧ°Ü£¬ÔòÑÓʱ1mSÖ®ºóÔÙ¶ÁÈ¡ 145 3 { 146 4 TWICON = 0; //Close TWI module 147 4 Delay1ms(1); 148 4 TwiInit(); //Reinitial 149 4 Delay1ms(1); 150 4 } 151 3 } 152 2 } 153 1 bAfeI2CRWErrFlg = !Result; //±ê¼ÇͨѶÊÇ·ñÕý³£ 154 1 155 1 return Result; 156 1 } 157 158 159 /************************************************************************************************* 160 * º¯ÊýÃû: AFEClrFlg 161 * ²Î Êý: 162 * ·µ»ØÖµ: ÎÞ 163 * Ãè Êö: ÇåÁãAFE±êÖ¾¼Ä´æÆ÷ 164 *************************************************************************************************/ 165 void AFEClrFlg(void) 166 { 167 1 if(AFEReadReg(AFE_FLAG1, 2, ®.AFEFLAG1)) 168 1 { 169 2 if((REG.AFEFLAG1!=0) || (REG.AFEFLAG2!=0)) 170 2 { 171 3 REG.AFESCONF1 |= 0x80; 172 3 AFEWriteReg(AFE_SCONF1, 1, ®.AFESCONF1); 173 3 REG.AFESCONF1 &= ~0x80; 174 3 AFEWriteReg(AFE_SCONF1, 1, ®.AFESCONF1); 175 3 } 176 2 } C51 COMPILER V9.01 AFE 02/08/2025 15:18:20 PAGE 4 177 1 } 178 179 180 /************************************************************************************************* 181 * º¯ÊýÃû: AFEInitReg 182 * ²Î Êý: ÎÞ 183 * ·µ»ØÖµ: ÎÞ 184 * Ãè Êö: ³õʼ»¯AFE¼Ä´æÆ÷ 185 *************************************************************************************************/ 186 void AFEInitReg(void) 187 { 188 1 U16 TempVar; 189 1 190 1 REG.AFEINTEN = 0x00; //²ÉÈ¡²éѯʽ£¬¹Ê²»ÐèÒªALARMÖÐ¶Ï 191 1 REG.AFESCONF1 = 0x50; //ʹÄÜCTLDºÍWDT¹¦ÄÜ 192 1 REG.AFESCONF2 = 0x00; //AFEÒý½ÅÅäÖÃΪ¸´Î»Ðźţ¬ALARMÊä³öµÍµçƽÂö³å£¬·ÅµçMOSÓë³äµçMOS¶¼¹Ø±Õ 193 1 REG.AFESCONF3 = 0xF8; //ĬÈÏVADCºÍCADC¶¼¿ªÆô£¬CADCÁ¬Ðø²ÉÑù£¬10λADC£¬VADCÖ»²É¼¯ -µçѹת»»ÖÜÆÚ50ms 194 1 REG.AFESCONF4 = 0x00; //ĬÈϹرÕƽºâBAT6-10 195 1 REG.AFESCONF5 = 0x00; //ĬÈϹرÕƽºâBAT1-5 196 1 REG.AFESCONF6 = 0x70; //CADC²É¼¯200mV·¶Î§£¬¸´Î»Ðźſí¶È1S£¬Ó²¼þ¶Ì·±£»¤µçѹ100mV£¬Ó²¼þ¶Ì·±£»¤ÑÓʱ5 -0uS 197 1 REG.AFESCONF7 = 0x01; //Ó²¼þ¹ý³å±£»¤ÑÓʱ1¸öת»»ÖÜÆÚ£¬³ä·Åµç״̬ãÐֵѡÔñλ1.4mV£ -¬ÅäÖÿ´ÃŹ·Òç³ö10S 198 1 REG.AFESCONF8 = 0x03; //SCONF8 + SCONF9 = 11 1111 1111 = 1023 199 1 REG.AFESCONF9 = 0xff; //Ó²¼þ¹ý³å±£»¤ãÐÖµ1023*5.86mV = 5994.78 200 1 REG.AFESCONF10= 0x00; //µÍ¹¦ºÄ¿ØÖÆλ£¬Ð´Èë0x33ÔÙдPD_EN=1½øÈëµÍ¹¦ºÄ 201 1 202 1 if(bSC_EN) //ÅäÖÃʹÄÜAFE¶Ì·¹¦ÄÜ 203 1 { 204 2 REG.AFESCONF1 |= 0x08; 205 2 REG.AFESCONF6 |= (E2ucAFEProtectConfig&0x0f);//½«FLASHÄÚ²ÎÊýдÈëAFE¼Ä´æÆ÷ 206 2 } 207 1 if(bOV_EN) //ÅäÖÃʹÄÜAFE¹ýѹ¹¦ÄÜ 208 1 { 209 2 REG.AFESCONF1 |= 0x04; 210 2 REG.AFESCONF7 |= (E2ucAFEProtectConfig&0xf0);//½«FLASHÄÚ²ÎÊýдÈëAFE¼Ä´æÆ÷ 211 2 TempVar = (U32)E2uiAFEOVvol*50/293; //È¡³ö¹ýѹ±£»¤µçѹ 212 2 REG.AFESCONF8 = TempVar>>8; //д¸ßÁ½Î» 213 2 REG.AFESCONF9 = TempVar; //дµÍ°Ëλ 214 2 } 215 1 } 216 217 218 219 /************************************************************************************************* 220 * º¯ÊýÃû: AFEInit 221 * ²Î Êý: 222 * ·µ»ØÖµ: 1:³É¹¦£»0:ʧ°Ü 223 * Ãè Êö: ³õʼ»¯AFE 224 *************************************************************************************************/ 225 BOOL AFEInit(void) 226 { 227 1 U8 xdata RdBuf[2]; 228 1 U8 i; 229 1 BOOL Result = 1; 230 1 U8 j = 3; 231 1 232 1 while(j--) 233 1 { 234 2 if( AFEWriteReg(AFE_INT_EN, 11, ®.AFEINTEN)) 235 2 { C51 COMPILER V9.01 AFE 02/08/2025 15:18:20 PAGE 5 236 3 for(i=3; i<=11; i=i+2) 237 3 { 238 4 AFEReadReg(i, 2, RdBuf); 239 4 240 4 if((RdBuf[0]!=*(®.AFEFLAG1+i)) || (RdBuf[1]!=*(®.AFEFLAG1+i+1))) 241 4 { 242 5 if(i != 7) //ƽºâ¼Ä´æÆ÷³ýÍ⣬ÒòΪƽºâ¼Ä´æÆ÷²»ÖÃ룬³ÖÐø30s»á×Ô¶¯ÇåÁã 243 5 { 244 6 Result = 0; 245 6 break; 246 6 } 247 5 } 248 4 } 249 3 } 250 2 else 251 2 { 252 3 Result = 0; 253 3 } 254 2 if(Result) 255 2 { 256 3 break; 257 3 } 258 2 } 259 1 return Result; 260 1 261 1 } 262 263 264 /************************************************************************************************* 265 * º¯ÊýÃû: AFERdFlg 266 * ²Î Êý: 267 * ·µ»ØÖµ: ÎÞ 268 * Ãè Êö: ¶ÁÈ¡AFE±êÖ¾¼Ä´æÆ÷ 269 AFE_SC±íʾ·¢Éú¶Ì·±£»¤ 270 FLAG2µÄbit2Ϊ1±íʾ·¢ÉúLVR¸´Î»£¬ÐèÒªÖØгõʼ»¯AFE 271 *************************************************************************************************/ 272 void AFERdFlg(void) 273 { 274 1 if(AFEReadReg(AFE_FLAG1, 2, ®.AFEFLAG1)) 275 1 { 276 2 if((REG.AFEFLAG2&0x02) != 0) //CADC µçÁ÷ת»»Íê³É 277 2 { 278 3 bCADCFlg = 1; 279 3 } 280 2 281 2 if((REG.AFEFLAG2&0x01) != 0) //VADC µçѹת»»Íê³É 282 2 { 283 3 bVADCFlg = 1; 284 3 } 285 2 286 2 if((REG.AFEFLAG1&0x08) != 0 && (bLoadChkingFlg != 1)) //AFE¶Ì·±£»¤ 287 2 { 288 3 bAFE_SC = 1; 289 3 bLoadStartCheckFlg = 1; //¿ªÆô¸ºÔؼì²â 290 3 } 291 2 if((REG.AFEFLAG1&0x04) != 0) //AFE Ó²¼þ¹ýѹ±£»¤ 292 2 { 293 3 bAFE_OV= 1; 294 3 } 295 2 296 2 if((REG.AFEFLAG2&0x04) != 0) //ÅжÏFLAG2µÄbit2ÊÇ·ñΪ1£¬ÈçΪ1Ôò±íʾAFE·¢Éú¹ýLVR£¬ÐèÒ -ªÖØгõʼ»¯AFE¼Ä´æÆ÷ C51 COMPILER V9.01 AFE 02/08/2025 15:18:20 PAGE 6 297 2 { 298 3 AFEInit(); 299 3 } 300 2 } 301 1 } 302 303 304 /************************************************************************************************* 305 * º¯ÊýÃû: AFERdStatus 306 * ²Î Êý: 307 * ·µ»ØÖµ: ÎÞ 308 * Ãè Êö: ¶ÁÈ¡AFE״̬¼Ä´æÆ÷ 309 *************************************************************************************************/ 310 void AFERdStatus(void) 311 { 312 1 U8 RegTemp[2]; 313 1 if(AFEReadReg(AFE_BSTATUS, 2, RegTemp))//®.AFEBSTATUS))//AFE¹Ì¶¨¶Á2Bytes£¬Ö»È¡1Byte 314 1 { 315 2 ucAFEStatus = REG.AFEBSTATUS = RegTemp[0]; //¸üгäµçÆ÷¡¢¸ºÔصļì²â½á¹û 316 2 } 317 1 } 318 319 320 /************************************************************************************************* 321 * º¯ÊýÃû: AFERamCheck 322 * ²Î Êý: 323 * ·µ»ØÖµ: ÎÞ 324 * Ãè Êö: ¶¨Ê±¼ì²âAFEµÄ¼Ä´æÆ÷ÊÇ·ñ±»¸Äд£¬Èç¹ûÊÇÔòÖØгõʼ»¯ 325 *************************************************************************************************/ 326 void AFERamCheck(void) 327 { 328 1 U8 xdata RdBuf[2]; 329 1 U8 i; 330 1 331 1 for(i=3; i<=11; i=i+2) 332 1 { 333 2 AFEReadReg(i, 2, RdBuf); 334 2 335 2 if((RdBuf[0]!=*(®.AFEFLAG1+i)) || (RdBuf[1]!=*(®.AFEFLAG1+i+1))) 336 2 { 337 3 if(i != 7) //ƽºâ¼Ä´æÆ÷³ýÍ⣬ÒòΪƽºâ¼Ä´æÆ÷²»ÖÃ룬³ÖÐø30s»á×Ô¶¯ÇåÁã 338 3 { 339 4 if(!AFEInit()) 340 4 { 341 5 bPDFlg = 1; 342 5 } 343 4 break; 344 4 } 345 3 } 346 2 } 347 1 } 348 349 350 /************************************************************************************************* 351 * º¯ÊýÃû: AFEEnterPD 352 * ²Î Êý: 353 * ·µ»ØÖµ: ÎÞ 354 * Ãè Êö: ¿ØÖÆAFE½øÈëPD״̬£¬¹Ø±Õ3.3VÊä³ö 355 *************************************************************************************************/ 356 void AFEEnterPD(void) 357 { 358 1 REG.AFESCONF10 = 0x33; C51 COMPILER V9.01 AFE 02/08/2025 15:18:20 PAGE 7 359 1 if(AFEWriteReg(AFE_SCONF10, 1, ®.AFESCONF10)) 360 1 { 361 2 REG.AFESCONF1 |= 0x20; 362 2 AFEWriteReg(AFE_SCONF1, 1, ®.AFESCONF1); 363 2 } 364 1 } 365 366 367 /************************************************************************************************* 368 * º¯ÊýÃû: AFEMosCtl 369 * ²Î Êý: MosStatus£ºMOS״̬¡£1£º¿ªÆô£»0£º¹Ø±Õ 370 * ·µ»ØÖµ: ÎÞ 371 * Ãè Êö: ¿ØÖƳä·ÅµçMOSµÄ¿ªÆôºÍ¹Ø±Õ 372 *************************************************************************************************/ 373 void AFEMosCtl(U8 MosStatus) 374 { 375 1 REG.AFESCONF2 &= ~0x03; 376 1 REG.AFESCONF2 |= MosStatus; 377 1 AFEWriteReg(AFE_SCONF2, 1, ®.AFESCONF2); 378 1 } 379 380 381 382 /************************************************************************************************* 383 * º¯ÊýÃû: AFEChgerCheckEn¡¢AFEChgerCheckDis¡¢AFELoadCheckEn¡¢AFELoadCheckDis 384 * ²Î Êý: 385 * ·µ»ØÖµ: ÎÞ 386 * Ãè Êö: ʹÄÜ/¹Ø±Õ³äµçÆ÷¼ì²â¡¢¸ºÔؼì²â 387 *************************************************************************************************/ 388 void AFEChgerCheckEn(void) 389 { 390 1 REG.AFESCONF1 |= 0x01; 391 1 AFEWriteReg(AFE_SCONF1, 1, ®.AFESCONF1); 392 1 } 393 394 395 void AFEChgerCheckDis(void) 396 { 397 1 REG.AFESCONF1 &= ~0x01; 398 1 AFEWriteReg(AFE_SCONF1, 1, ®.AFESCONF1); 399 1 } 400 401 402 void AFELoadCheckEn(void) 403 { 404 1 REG.AFESCONF1 |= 0x02; 405 1 AFEWriteReg(AFE_SCONF1, 1, ®.AFESCONF1); 406 1 } 407 408 409 void AFELoadCheckDis(void) 410 { 411 1 REG.AFESCONF1 &= ~0x02; 412 1 AFEWriteReg(AFE_SCONF1, 1, ®.AFESCONF1); 413 1 } 414 415 416 /************************************************************************************************* 417 * º¯ÊýÃû: AfeBalEn 418 * ²Î Êý: BalChTemp£ºÆ½ºâ¶ÔÓ¦µÄCELL£¬Èç¹ûÈ«²¿Îª0£¬Ôò¹Ø±Õƽºâ 419 * ·µ»ØÖµ: ÎÞ 420 * Ãè Êö: ¿ªÆôºÍ¹Ø±Õƽºâ C51 COMPILER V9.01 AFE 02/08/2025 15:18:20 PAGE 8 421 *************************************************************************************************/ 422 void AfeBalCtl(U16 BalChTemp) 423 { 424 1 REG.AFESCONF4 = BalChTemp>>5; 425 1 if(AFEWriteReg(AFE_SCONF4, 1, ®.AFESCONF4)) 426 1 { 427 2 REG.AFESCONF5 = BalChTemp; 428 2 AFEWriteReg(AFE_SCONF5, 1, ®.AFESCONF5); 429 2 } 430 1 } 431 432 433 /************************************************************************************************* 434 * º¯ÊýÃû: AfeWDTEn£¬ AfeWDTDis 435 * ²Î Êý: 436 * ·µ»ØÖµ: ÎÞ 437 * Ãè Êö: ¿ªÆôºÍ¹Ø±Õ¿´ÃŹ·Ä£¿é 438 *************************************************************************************************/ 439 void AfeWDTEn(void) 440 { 441 1 REG.AFESCONF1 |= 0x10; 442 1 AFEWriteReg(AFE_SCONF1, 1, ®.AFESCONF1); 443 1 } 444 445 446 void AfeWDTDis(void) 447 { 448 1 REG.AFESCONF1 &= ~0x10; 449 1 AFEWriteReg(AFE_SCONF1, 1, ®.AFESCONF1); 450 1 } 451 452 453 /************************************************************************************************* 454 * º¯ÊýÃû: AfeWDTEn£¬ AfeWDTDis 455 * ²Î Êý: ÎÞ 456 * ·µ»ØÖµ: ÎÞ 457 * Ãè Êö: ¿ªÆôºÍ¹Ø±Õ¿´ÃŹ·Ä£¿é 458 *************************************************************************************************/ 459 void AfeADCEn(void) 460 { 461 1 REG.AFESCONF3 |= 0xf8; 462 1 AFEWriteReg(AFE_SCONF3, 1, ®.AFESCONF3); 463 1 } 464 465 466 void AfeADCDis(void) 467 { 468 1 REG.AFESCONF3 &= ~0xf8; 469 1 AFEWriteReg(AFE_SCONF3, 1, ®.AFESCONF3); 470 1 } 471 472 void AfeCADCEn(void) 473 { 474 1 REG.AFESCONF3 |= 0xe0; 475 1 AFEWriteReg(AFE_SCONF3, 1, ®.AFESCONF3); 476 1 } 477 478 479 void AfeCADCDis(void) 480 { 481 1 REG.AFESCONF3 &= ~0xe0; 482 1 AFEWriteReg(AFE_SCONF3, 1, ®.AFESCONF3); C51 COMPILER V9.01 AFE 02/08/2025 15:18:20 PAGE 9 483 1 } 484 485 void AfeTempADCEn(void) 486 { 487 1 REG.AFESCONF3 |= 0x08; 488 1 AFEWriteReg(AFE_SCONF3, 1, ®.AFESCONF3); 489 1 } 490 491 492 void AfeTempADCDis(void) 493 { 494 1 REG.AFESCONF3 &= ~0x08; 495 1 AFEWriteReg(AFE_SCONF3, 1, ®.AFESCONF3); 496 1 } 497 498 499 /************************************************************************************************* 500 * º¯ÊýÃû: AfeAlarmEn£¬AfeAlarmDis 501 * ²Î Êý: AlarmFlg£ºÖÃλ¶ÔÓ¦µÄALARMλ 502 * ·µ»ØÖµ: ÎÞ 503 * Ãè Êö: ¿ªÆôºÍ¹Ø±Õ¶ÔÓ¦µÄALARMÖжϴ¥·¢ 504 *************************************************************************************************/ 505 void AfeAlarmEn(U8 AlarmFlg) 506 { 507 1 REG.AFEINTEN |= AlarmFlg; 508 1 AFEWriteReg(AFE_INT_EN, 1, ®.AFEINTEN); 509 1 } 510 511 void AfeAlarmDis(U8 AlarmFlg) 512 { 513 1 REG.AFEINTEN &= ~AlarmFlg; 514 1 AFEWriteReg(AFE_INT_EN, 1, ®.AFEINTEN); 515 1 } 516 517 MODULE INFORMATION: STATIC OVERLAYABLE CODE SIZE = 1206 ---- CONSTANT SIZE = ---- ---- XDATA SIZE = 181 22 PDATA SIZE = ---- ---- DATA SIZE = 6 ---- IDATA SIZE = ---- ---- BIT SIZE = 5 3 END OF MODULE INFORMATION. C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)