113 lines
4.7 KiB
Plaintext
113 lines
4.7 KiB
Plaintext
C51 COMPILER V9.01 MOSCTRL 02/11/2025 15:43:04 PAGE 1
|
||
|
||
|
||
C51 COMPILER V9.01, COMPILATION OF MODULE MOSCTRL
|
||
OBJECT MODULE PLACED IN .\output\MosCtrl.obj
|
||
COMPILER INVOKED BY: D:\Tool\Keil\C51\BIN\C51.EXE code_drv\MosCtrl.c LARGE OPTIMIZE(7,SIZE) REGFILE(.\output\MCUCore_Loa
|
||
-d.ORC) BROWSE INTVECTOR(0X1000) INCDIR(.\header_app;.\header_drv;.\code_gasguage;.\code_classb\iec60730_lib\include;.\co
|
||
-de_classb\iec60730_proc\Include;.\code_classb\config) DEBUG OBJECTEXTEND PRINT(.\output\MosCtrl.lst) OBJECT(.\output\Mos
|
||
-Ctrl.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 BOOL bCHGMOSBk;
|
||
13 BOOL bDSGMOSBk;
|
||
14 /*************************************************************************************************
|
||
15 * 函数名: MosStatusCheck
|
||
16 * 参 数: 无
|
||
17 * 返回值: 无
|
||
18 * 描 述: 根据当前电池包的保护状态,确定是否置位对应的MOS控制标志
|
||
19 *************************************************************************************************/
|
||
20 void MosStatusCheck(void)
|
||
21 {
|
||
22 1 bCHGMOS = 1;
|
||
23 1 bDSGMOS = 1;
|
||
24 1
|
||
25 1 if(bAFE_OV || bCTO)
|
||
26 1 {
|
||
27 2 bCHGMOS = 0;
|
||
28 2 }
|
||
29 1
|
||
30 1 if(bOTD || bUTD || bOCD1 || bOCD2 || bAFE_SC || bCTO)
|
||
31 1 {
|
||
32 2 bDSGMOS = 0;
|
||
33 2 }
|
||
34 1
|
||
35 1 if(!bDSGING) //检测到放电状态时,以下电压保护不关闭充电MOS(前提
|
||
-条件:bENMOS配置为1)
|
||
36 1 {
|
||
37 2 if(bOTC || bUTC || bOV || bOCC)
|
||
38 2 {
|
||
39 3 bCHGMOS = 0;
|
||
40 3 }
|
||
41 2 }
|
||
42 1
|
||
43 1 if(!bCHGING) //检测到充电状态时,以下电压保护不关闭放电MOS
|
||
44 1 {
|
||
45 2 if(bUV)
|
||
46 2 {
|
||
47 3 bDSGMOS = 0;
|
||
48 3 }
|
||
49 2 }
|
||
50 1
|
||
51 1 if(bOCD1 || bOCD2 || bAFE_SC) //放电过流时,如果OCPM配置为1,则关闭充电MOS
|
||
C51 COMPILER V9.01 MOSCTRL 02/11/2025 15:43:04 PAGE 2
|
||
|
||
52 1 {
|
||
53 2 bCHGMOS = 0;
|
||
54 2 }
|
||
55 1
|
||
56 1 if(bOCC) //充电过流时,则关闭放电MOS
|
||
57 1 {
|
||
58 2 bDSGMOS = 0;
|
||
59 2 }
|
||
60 1 }
|
||
61
|
||
62
|
||
63
|
||
64 /*************************************************************************************************
|
||
65 * 函数名: MosCtrl
|
||
66 * 参 数: 无
|
||
67 * 返回值: 无
|
||
68 * 描 述: MOS控制
|
||
69 *************************************************************************************************/
|
||
70 void MosCtrl(void)
|
||
71 {
|
||
72 1 MosStatusCheck(); //判断MOS状态有无变化,有变化则通过通讯控制AFE开关MOS
|
||
73 1
|
||
74 1 if((bCHGMOSBk!=bCHGMOS) || (bDSGMOSBk!=bDSGMOS))
|
||
75 1 {
|
||
76 2 bCHGMOSBk = bCHGMOS;
|
||
77 2 bDSGMOSBk = bDSGMOS;
|
||
78 2
|
||
79 2 AFEMosCtl(((U8)bDSGMOS<<1) | bCHGMOS);
|
||
80 2 }
|
||
81 1 }
|
||
82
|
||
83
|
||
|
||
|
||
MODULE INFORMATION: STATIC OVERLAYABLE
|
||
CODE SIZE = 119 ----
|
||
CONSTANT SIZE = ---- ----
|
||
XDATA SIZE = ---- ----
|
||
PDATA SIZE = ---- ----
|
||
DATA SIZE = ---- ----
|
||
IDATA SIZE = ---- ----
|
||
BIT SIZE = 2 ----
|
||
END OF MODULE INFORMATION.
|
||
|
||
|
||
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
|