Procházet zdrojové kódy

don't close acc12 when over discharge

Signed-off-by: FuangCao <cavan.cao@foxmail.com>
FuangCao před 5 roky
rodič
revize
ddc2578e59
3 změnil soubory, kde provedl 22 přidání a 55 odebrání
  1. 1 1
      Project/version.txt
  2. 20 53
      Source/app.c
  3. 1 1
      Source/sw_build_info.h

+ 1 - 1
Project/version.txt

@@ -1 +1 @@
-PS100XX_V11_12221645
+PS100XX_V11_12251823

+ 20 - 53
Source/app.c

@@ -506,8 +506,6 @@ uint8_t Select_One_BAT(void)
 
 uint8_t Check_CB_BAT_1(void)
 {
-	uint8_t temp_op = CB_MAX;
-	
 	if(Is_Sub_BMS_1_Normal() == SHARK_BATT_EXIT_SUCCESS)
 	{
 		if((sub_bms_info_1.packet_common.bms_status & (BMS_STA_D_OPEN | BMS_STA_C_OPEN)) != (BMS_STA_D_OPEN | BMS_STA_C_OPEN))
@@ -517,7 +515,7 @@ uint8_t Check_CB_BAT_1(void)
 			if((sub_bms_info_1.packet_common.work_status &(ST_OVRDISCHRG_VOL|ST_PDOWN)) != 0)
 				;
 			else
-				temp_op = CB_BAT_NO;
+				return CB_BAT1_BAT2_AUTO;
 		}
 
 		//
@@ -529,21 +527,15 @@ uint8_t Check_CB_BAT_1(void)
 	}
 	else 
 	{
-		/*if(Is_Sub_BMS_2_Normal())
-			temp_op = CB_BAT2;
-		else*/
-			temp_op = CB_BAT_NO;
+		return CB_BAT1_BAT2_AUTO;
 	}
 
-	return temp_op;
+	return CB_MAX;
 	
 }
 
-
 uint8_t Check_CB_BAT_2(void)
 {
-	uint8_t temp_op = CB_MAX;
-	
 	if(Is_Sub_BMS_2_Normal() == SHARK_BATT_EXIT_SUCCESS)
 	{
 		if((sub_bms_info_2.packet_common.bms_status & (BMS_STA_D_OPEN | BMS_STA_C_OPEN)) != (BMS_STA_D_OPEN | BMS_STA_C_OPEN))
@@ -553,7 +545,7 @@ uint8_t Check_CB_BAT_2(void)
 			if((sub_bms_info_2.packet_common.work_status &(ST_OVRDISCHRG_VOL|ST_PDOWN)) != 0)
 				;
 			else
-				temp_op = CB_BAT_NO;
+				return CB_BAT1_BAT2_AUTO;
 		}
 
 		//
@@ -565,24 +557,18 @@ uint8_t Check_CB_BAT_2(void)
 	}
 	else 
 	{
-		/*if(Is_Sub_BMS_1_Normal())
-			temp_op = CB_BAT1;
-		else*/
-			temp_op = CB_BAT_NO;
+		return CB_BAT1_BAT2_AUTO;
 	}
 
-	return temp_op;
+	return CB_MAX;
 	
 }
 
 uint8_t Check_CB_BAT1_BAT2_PARRALLEL(void)
 {
-	uint8_t temp_op = CB_MAX;
-
 	if (!shark_battery_parrallel_enabled())
 	{
-		temp_op = Select_One_BAT();
-		return temp_op;
+		return CB_BAT1_BAT2_AUTO;
 	}
 	//
 	if(Is_Sub_BMS_1_Normal() == SHARK_BATT_EXIT_SUCCESS && Is_Sub_BMS_2_Normal() == SHARK_BATT_EXIT_SUCCESS)
@@ -600,24 +586,21 @@ uint8_t Check_CB_BAT1_BAT2_PARRALLEL(void)
 	}
 	else
 	{
-		temp_op = Select_One_BAT();
-		return temp_op;
+		return CB_BAT1_BAT2_AUTO;
 	}
 
 	//
 	if(sub_bms_info_1.packet_common.m_current > 50000 || sub_bms_info_2.packet_common.m_current > 50000)
 	{
-		temp_op = Select_One_BAT();
-		return temp_op;
+		return CB_BAT1_BAT2_AUTO;
 	}
 
 	if (shark_battery_get_voltage_delta() > PARRALLEL_DELTA_VOL)
 	{
-		temp_op = Select_One_BAT();
-		return temp_op;
+		return CB_BAT1_BAT2_AUTO;
 	}
 
-	return temp_op;
+	return CB_MAX;
 		
 }
 
@@ -652,20 +635,16 @@ static u8 shark_battery_get_series_error(void)
 
 uint8_t Check_CB_BAT1_BAT2_SERIES(void)
 {
-	uint8_t temp_op = CB_MAX;
-
 #ifndef CONFIG_SOUTH_KOREA
 	if (shark_battery_series_locked)
 	{
-		temp_op = Select_One_BAT();
-		return temp_op;
+		return CB_BAT1_BAT2_AUTO;
 	}
 #endif
 
 	if (shark_charger_state == SHARK_CHG_INSERT)
 	{
-		temp_op = Select_One_BAT();
-		return temp_op;
+		return CB_BAT1_BAT2_AUTO;
 	}	
 
 	if (shark_battery_get_series_error() != 0)
@@ -679,8 +658,7 @@ uint8_t Check_CB_BAT1_BAT2_SERIES(void)
 		}
 #endif
 
-		temp_op = Select_One_BAT();
-		return temp_op;
+		return CB_BAT1_BAT2_AUTO;
 	}
 
 #ifndef CONFIG_SOUTH_KOREA
@@ -702,17 +680,16 @@ uint8_t Check_CB_BAT1_BAT2_SERIES(void)
 	{
 		memset(&Series_delay,0x00,sizeof(Series_delay));
 		shark_battery_series_locked = shark_true;
-		return Select_One_BAT();
+		return CB_BAT1_BAT2_AUTO;
 	}
 
 	if(sub_bms_info_1.packet_common.m_percent < SERIES_EXIT_PERCENT || sub_bms_info_2.packet_common.m_percent < SERIES_EXIT_PERCENT)
 	{
-		temp_op = Select_One_BAT();
-		return temp_op;
+		return CB_BAT1_BAT2_AUTO;
 	}
 #endif
 
-	return temp_op;
+	return CB_MAX;
 }
 
 uint8_t power_switch_from = 0;
@@ -776,7 +753,7 @@ void Check_CB_Operate_State(void)
 	{
 		case CB_BAT_NO:
 			temp_op = Select_One_BAT();
-			if (shark_battery_over_discharge()) {
+			if (temp_op != CB_BAT_NO && shark_battery_over_discharge()) {
 				QD_Enable_From(0, 1);
 			}
 			break;
@@ -812,19 +789,9 @@ void Check_CB_Operate_State(void)
 		//test-end
 		return;
 	}
-	else if(temp_op == CB_BAT_NO)
+	else if(temp_op == CB_BAT_NO && work_normal == 1)
 	{
-		if(work_normal == 1)
-		{
-			Power_On_Normal(0,1);
-		}
-	}
-	else
-	{
-		/*if(work_normal == 1)
-		{
-			Power_On_Normal(0);
-		}*/
+		Power_On_Normal(0, 1);
 	}
 	
 	Battery_CB_Switch(temp_op);

+ 1 - 1
Source/sw_build_info.h

@@ -1,3 +1,3 @@
 #pragma once
 
-#define CONFIG_VERSION "PS100XX_V11_12221645"
+#define CONFIG_VERSION "PS100XX_V11_12251823"