Sfoglia il codice sorgente

clear battery shake flag when acc12 down

Signed-off-by: FuangCao <cavan.cao@foxmail.com>
FuangCao 5 anni fa
parent
commit
f07c9b39f7
7 ha cambiato i file con 20 aggiunte e 16 eliminazioni
  1. 8 9
      Source/app.c
  2. 1 0
      Source/app.h
  3. 4 0
      Source/app_end_ctr.c
  4. 1 3
      Source/app_rs485_1.c
  5. 1 3
      Source/app_rs485_2.c
  6. 4 0
      Source/drv_io.c
  7. 1 1
      Source/sw_build_info.h

+ 8 - 9
Source/app.c

@@ -1124,10 +1124,6 @@ void Power_On_Normal(uint8_t enable,uint8_t from)
 		Enable_12V(0);
 
 		Set_Enter_Sleep_Delay();
-
-		shark_battery_shake_clear();
-
-		
 #endif
 	}
 	work_normal = enable;
@@ -1431,9 +1427,11 @@ uint8_t Change_Mode_Sub_BMS_SERIES(void)
 			||m_2_total_vol <= SERIES_PROTECT_VOL )
 		return 0;
 
+#if 0
 	if(sub_bms_info_1.packet_common.m_percent < SERIES_UNDER_XX_PERCENT\
 		|| sub_bms_info_2.packet_common.m_percent < SERIES_UNDER_XX_PERCENT)
 		return 0;
+#endif
 #endif	
 	return 1;
 }
@@ -1791,20 +1789,21 @@ uint8_t shark_battery_shake_get_raw(void)
 
 uint8_t shark_battery_shake_get(void)
 {
-	if (end_ctr_self_ss_new.xl_sta == 0) {
-		return 0;
-	}
-
 	return shark_battery_shake;
 }
 
 void shark_battery_shake_set(uint8_t mask)
 {
-	if (QD_Dect() != 0) {
+	if (end_ctr_self_ss_new.xl_sta != 0) {
 		shark_battery_shake |= mask;
 	}
 }
 
+uint8_t shark_battery_shake_check(uint8_t mask)
+{
+	return shark_battery_shake & mask;
+}
+
 void shark_battery_shake_clear(void)
 {
 	shark_battery_shake = 0;

+ 1 - 0
Source/app.h

@@ -235,6 +235,7 @@ void Save_Param(void);
 uint8_t shark_battery_shake_get_raw(void);
 uint8_t shark_battery_shake_get(void);
 void shark_battery_shake_set(uint8_t mask);
+uint8_t shark_battery_shake_check(uint8_t mask);
 void shark_battery_shake_clear(void);
 
 #endif

+ 4 - 0
Source/app_end_ctr.c

@@ -910,6 +910,10 @@ void ACC12_OVER_Loader_Interrupt(void)
 {
 	acc12_overloader_times++;
 
+	if (end_ctr_self_ss_new.xl_sta != 0) {
+		QD_Enable(0);
+	}
+
 #if ACC2_USE_PWM
 	/*if(acc12_delay.set)
 			return;

+ 1 - 3
Source/app_rs485_1.c

@@ -67,13 +67,11 @@ uint8_t SUB_BMS_1_DEC(void)
 
 void RS485_Communication_Time_Out_1(void)
 {
-#if 0
-	if (end_ctr_self_ss_new.xl_sta && BAT1_IS_OPEN()) {
+	if (end_ctr_self_ss_new.xl_sta && shark_battery_shake_check(1) == 0) {
 		sub_bms_info_1.sub_bms_cmd.operate = OP_READ_INFO;
 		sub_bms_info_1.rs485_time_out = 1;
 		return;
 	}
-#endif
 
 	if(sub_bms_info_1.rs485_connect)
 	{

+ 1 - 3
Source/app_rs485_2.c

@@ -63,13 +63,11 @@ uint8_t SUB_BMS_2_DEC(void)
 
 void RS485_Communication_Time_Out_2(void)
 {
-#if 0
-	if (end_ctr_self_ss_new.xl_sta && BAT2_IS_OPEN()) {
+	if (end_ctr_self_ss_new.xl_sta && shark_battery_shake_check(2) == 0) {
 		sub_bms_info_2.sub_bms_cmd.operate = OP_READ_INFO;
 		sub_bms_info_2.rs485_time_out = 1;
 		return;
 	}
-#endif
 
 	if(sub_bms_info_2.rs485_connect)
 	{

+ 4 - 0
Source/drv_io.c

@@ -116,6 +116,10 @@ void ACC2_Enable(uint8_t on)
 #else
 	gpio_bit_write(GPIOC,GPIO_PIN_15,(bit_status)(on));
 #endif
+
+	if (on == 0) {
+		shark_battery_shake_clear();
+	}
 }
 void E_CTR_Dec_IRQ_Initial(void)
 {

+ 1 - 1
Source/sw_build_info.h

@@ -1,3 +1,3 @@
 #pragma once
 
-#define CONFIG_VERSION "PS100XX_V01_0C291902"
+#define CONFIG_VERSION "PS100XX_V01_0C301419"