ZDBMS/output/MosCtrl.lst

113 lines
4.7 KiB
Plaintext
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

C51 COMPILER V9.01 MOSCTRL 02/07/2025 10:36:15 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/07/2025 10:36:15 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)