Explorar o código

判断soft discharger over current

Signed-off-by: huhui <huhui@sharkgulf.com>
huhui %!s(int64=5) %!d(string=hai) anos
pai
achega
723bfb2f02
Modificáronse 2 ficheiros con 39 adicións e 8 borrados
  1. 19 5
      Application/app/sox/health.c
  2. 20 3
      Project/SP700.uvprojx

+ 19 - 5
Application/app/sox/health.c

@@ -137,11 +137,17 @@ static debounce_t _charger_over_current = {
 	.count = 0,
 	.max_count = 70
 };
+static debounce_t _discharger_over_current = {
+	.count = 0,
+	.max_count = 20
+};
+
 /* 55 - 100A, 14 - I x I / 750 */
 void check_current_state(void){
+	float current = measure_value()->load_current;
 	if (bms_state_get()->charging) {
+		_discharger_over_current.count = 0;
 		if (!_health.charger_over_current) {
-			float current = measure_value()->load_current;
 			if (current > MAX_CURRENT_FOR_CHARGER) {
 				_charger_over_current.count ++;
 			}else {
@@ -156,10 +162,18 @@ void check_current_state(void){
 		}
 	}else{
 		_charger_over_current.count = 0;
-		if (!_health.load_current_short && (abs(measure_value()->load_current) >= MAX_CURRENT_FOR_DISCHARGER)){
-			_health.load_current_short = 1;
-			ml5238_enable_load_detect(1); //´ò¿ª¸ºÔؼì²â
-			shark_timer_post(&_load_detect_timer._timer, _load_detect_timer.interval);
+		if (!_health.load_current_short){
+			if ((abs(current) >= MAX_CURRENT_FOR_DISCHARGER)) {
+				_discharger_over_current.count++;
+			}else {
+				_discharger_over_current.count = 0;
+			}
+			if (_discharger_over_current.count >= _discharger_over_current.max_count) {
+				_health.load_current_short = 1;
+				_discharger_over_current.count = 0;
+				ml5238_enable_load_detect(1); //´ò¿ª¸ºÔؼì²â
+				shark_timer_post(&_load_detect_timer._timer, _load_detect_timer.interval);
+			}
 		}
 	}
 }

+ 20 - 3
Project/SP700.uvprojx

@@ -10,14 +10,14 @@
       <TargetName>GD32F330C8</TargetName>
       <ToolsetNumber>0x4</ToolsetNumber>
       <ToolsetName>ARM-ADS</ToolsetName>
-      <pCCUsed>5060750::V5.06 update 6 (build 750)::ARMCC</pCCUsed>
+      <pCCUsed>5060750::V5.06 update 6 (build 750)::.\ARMCC</pCCUsed>
       <uAC6>0</uAC6>
       <TargetOption>
         <TargetCommonOption>
           <Device>GD32F330C8</Device>
           <Vendor>GigaDevice</Vendor>
           <PackID>GigaDevice.GD32F3x0_DFP.2.0.0</PackID>
-          <PackURL>http://gd32mcu.21ic.com/data/documents/yingyongruanjian/</PackURL>
+          <PackURL>http://gd32mcu.com/data/documents/pack/</PackURL>
           <Cpu>IRAM(0x20000000,0x02000) IROM(0x08000000,0x10000) CPUTYPE("Cortex-M4") FPU2 CLOCK(12000000) ELITTLE</Cpu>
           <FlashUtilSpec></FlashUtilSpec>
           <StartupFile></StartupFile>
@@ -184,6 +184,8 @@
             <hadXRAM>0</hadXRAM>
             <uocXRam>0</uocXRam>
             <RvdsVP>2</RvdsVP>
+            <RvdsMve>0</RvdsMve>
+            <RvdsCdeCp>0</RvdsCdeCp>
             <hadIRAM2>0</hadIRAM2>
             <hadIROM2>0</hadIROM2>
             <StupSel>8</StupSel>
@@ -350,7 +352,7 @@
             <NoWarn>0</NoWarn>
             <uSurpInc>0</uSurpInc>
             <useXO>0</useXO>
-            <uClangAs>0</uClangAs>
+            <ClangAsOpt>4</ClangAsOpt>
             <VariousControls>
               <MiscControls></MiscControls>
               <Define></Define>
@@ -713,4 +715,19 @@
     <files/>
   </RTE>
 
+  <LayerInfo>
+    <Layers>
+      <Layer>
+        <LayName>&lt;Project Info&gt;</LayName>
+        <LayDesc></LayDesc>
+        <LayUrl></LayUrl>
+        <LayKeys></LayKeys>
+        <LayCat></LayCat>
+        <LayLic></LayLic>
+        <LayTarg>0</LayTarg>
+        <LayPrjMark>1</LayPrjMark>
+      </Layer>
+    </Layers>
+  </LayerInfo>
+
 </Project>