C51 COMPILER V9.01 CHARGERLOAD 02/07/2025 10:36:15 PAGE 1 C51 COMPILER V9.01, COMPILATION OF MODULE CHARGERLOAD OBJECT MODULE PLACED IN .\output\ChargerLoad.obj COMPILER INVOKED BY: D:\Tool\Keil\C51\BIN\C51.EXE code_drv\ChargerLoad.c LARGE OPTIMIZE(7,SIZE) REGFILE(.\output\MCUCore -_Load.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\ChargerLoad.lst) OBJECT(.\ou -tput\ChargerLoad.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 //充电器和负载检测 13 BOOL bChgerStartCheckFlg; 14 BOOL bChgerChkingFlg; 15 BOOL bLoadStartCheckFlg; 16 BOOL bLoadChkingFlg; 17 U8 xdata ucChgerRCnt; 18 U8 xdata ucLoadRCnt; 19 20 /************************************************************************************************* 21 * 函数名: LoadCheck 22 * 参 数: 无 23 * 返回值: 无 24 * 描 述: 负载检测,欠压和过流保护后,需启动负载锁定功能 25 *************************************************************************************************/ 26 void LoadCheck(void) 27 { 28 1 if(bLoadStartCheckFlg) //如果发生欠压保护,且电压已经恢复;如果已经发生过流保护 29 1 { 30 2 bLoadStartCheckFlg = 0; 31 2 bLoadChkingFlg = 1; 32 2 ucLoadRCnt = 0; 33 2 AFELoadCheckEn(); //开启AFE负载检测 34 2 } 35 1 else if(bLoadChkingFlg) 36 1 { 37 2 AFERdStatus(); 38 2 if(!bAfeLoad) //检测到负载释放 39 2 { 40 3 if(++ucLoadRCnt >= LOAD_DELAY_CNT) 41 3 { 42 4 bLoadChkingFlg = 0; 43 4 ucLoadRCnt = 0; 44 4 AFELoadCheckDis(); //关闭负载检测 45 4 if(bUVLock) 46 4 { 47 5 bUV = 0; //释放欠压、过流 48 5 } 49 4 bOCD1 = 0; 50 4 bOCD2 = 0; 51 4 if(bAFE_SC) 52 4 { C51 COMPILER V9.01 CHARGERLOAD 02/07/2025 10:36:15 PAGE 2 53 5 bAFE_SC = 0; 54 5 AFEClrFlg(); //清除短路保护标志 55 5 } 56 4 } 57 3 } 58 2 } 59 1 } 60 61 62 /************************************************************************************************* 63 * 函数名: ChgerCheck 64 * 参 数: 无 65 * 返回值: 无 66 * 描 述: 检测充电器,当发生欠压后检测充电器是否连接;当发生充电过流后检测充电器是否移除 67 *************************************************************************************************/ 68 void ChgerCheck(void) 69 { 70 1 if(bChgerStartCheckFlg) 71 1 { 72 2 bChgerStartCheckFlg = 0; 73 2 bChgerChkingFlg = 1; 74 2 ucChgerRCnt = 0; 75 2 AFEChgerCheckEn(); //开启充电器检测 76 2 } 77 1 else if(bChgerChkingFlg) 78 1 { 79 2 AFERdStatus(); 80 2 if(!bAfeChger) //充电器移除 81 2 { 82 3 if(++ucChgerRCnt >= CHGER_DELAY_CNT) 83 3 { 84 4 bChgerChkingFlg = 0; 85 4 ucChgerRCnt = 0; 86 4 AFEChgerCheckDis(); //关闭充电器检测 87 4 if(bOVLock) 88 4 { 89 5 bOV = 0; //释放过压 90 5 bAFE_OV = 0; 91 5 AFEClrFlg(); 92 5 } 93 4 bOCC = 0; 94 4 } 95 3 } 96 2 } 97 1 } MODULE INFORMATION: STATIC OVERLAYABLE CODE SIZE = 151 ---- CONSTANT SIZE = ---- ---- XDATA SIZE = 2 ---- PDATA SIZE = ---- ---- DATA SIZE = ---- ---- IDATA SIZE = ---- ---- BIT SIZE = 4 ---- END OF MODULE INFORMATION. C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)