Преглед на файлове

解决低电量SOC=0xFF的问题。

Dail преди 1 година
родител
ревизия
2dedf0e9f5
променени са 3 файла, в които са добавени 2626 реда и са изтрити 2608 реда
  1. 2591 2591
      MDK-ARM/QD007A_CTL_APP/QD007A_CTL_APP_CRC.hex
  2. BIN
      MDK-ARM/bin/QD007A_CTL_APP.bin
  3. 35 17
      User/Src/remain_distance.c

Файловите разлики са ограничени, защото са твърде много
+ 2591 - 2591
MDK-ARM/QD007A_CTL_APP/QD007A_CTL_APP_CRC.hex


BIN
MDK-ARM/bin/QD007A_CTL_APP.bin


+ 35 - 17
User/Src/remain_distance.c

@@ -475,18 +475,26 @@ uint8_t Battery_SocCal(Battery_Info_t* p_Battery_Info, BatterCellInfo_Struct_t*
 				//查表计算SOC
 				for(i=0; i<TableNum; i++)
 				{
-					if(p_CellInfo->CellParam[i] <= u16MaxVoltage)
+					if(i >= (TableNum - 1))
 					{
-						BatteryRemainQ = p_CellInfo->DesignCap - i * p_CellInfo->DesignCap / 100;
-						break;
-					}
-					else//电池电压低于最小值
+					  BatteryRemainQ = 0;
+						p_Battery_Info->Q_remain_record = BatteryRemainQ;				
+				    return 0;
+					}					
+					else 
 					{
-						BatteryRemainQ = 0;
-					}
+						if(p_CellInfo->CellParam[i] <= u16MaxVoltage)
+						{
+							BatteryRemainQ = p_CellInfo->DesignCap - i * p_CellInfo->DesignCap / 100;
+							p_Battery_Info->Q_remain_record = BatteryRemainQ;				
+							return TableNum - i - 1;
+						}
+						else//电池电压低于最小值
+						{
+							BatteryRemainQ = 0;
+						}
+					}	
 				}
-        p_Battery_Info->Q_remain_record = BatteryRemainQ;				
-				return TableNum - i - 1;
 			}
 		}		
 	}
@@ -510,18 +518,28 @@ uint8_t Battery_SocCal(Battery_Info_t* p_Battery_Info, BatterCellInfo_Struct_t*
 			//查表计算SOC
 			for(i=0; i<TableNum; i++)
 			{
-				if(p_CellInfo->CellParam[i] <= u16MaxVoltage)
+				if(i >= (TableNum - 1))
 				{
-					BatteryRemainQ = p_CellInfo->DesignCap - i * p_CellInfo->DesignCap / 100;
+					BatteryRemainQ = 0;
+					p_Battery_Info->Q_remain_record = BatteryRemainQ;
+			    Result = 0;
 					break;
-				}
-				else//电池电压低于最小值
+				}					
+				else 
 				{
-					BatteryRemainQ = 0;
-				}
+					if(p_CellInfo->CellParam[i] <= u16MaxVoltage)
+					{
+						BatteryRemainQ = p_CellInfo->DesignCap - i * p_CellInfo->DesignCap / 100;
+						p_Battery_Info->Q_remain_record = BatteryRemainQ;
+						Result = TableNum - i - 1;
+						break;
+					}
+					else//电池电压低于最小值
+					{
+						BatteryRemainQ = 0;
+					}
+				}	
 			}
-			p_Battery_Info->Q_remain_record = BatteryRemainQ;
-			Result = TableNum - i - 1;
 			
 			//电量上升时,突变较小,取上次计算值
 			if(Result > Result_Pre)

Някои файлове не бяха показани, защото твърде много файлове са промени