Просмотр исходного кода

充满后,如果计算的最小容量比原来的大,不更新最细容量,充电只可能让最小容量变小

Signed-off-by: huhui <huhui@sharkgulf.com>
huhui 4 лет назад
Родитель
Сommit
3a5d030e75
1 измененных файлов с 6 добавлено и 4 удалено
  1. 6 4
      Application/app/sox/soc.c

+ 6 - 4
Application/app/sox/soc.c

@@ -307,10 +307,12 @@ static void _force_capacity_full(void){
 		}else {
 		}else {
 			curr_min_cap = _soc.coulomb_max - curr_real_cap;
 			curr_min_cap = _soc.coulomb_max - curr_real_cap;
 		}
 		}
-		//lowpass filter
-		_soc.coulomb_min = (curr_min_cap + _soc.coulomb_min)/2.0f;
-		soc_warning("current real cap %f\n", curr_real_cap);
-		push_event(Min_Cap_For_Full, (u32)curr_real_cap);
+		//don't trust if curr_min_cap big than before
+		if (curr_min_cap < _soc.coulomb_min) {
+			_soc.coulomb_min = (curr_min_cap + _soc.coulomb_min)/2.0f; //lowpass filter
+			soc_warning("current real cap %f\n", curr_real_cap);
+			push_event(Min_Cap_For_Full, (u32)curr_real_cap);
+		}
 	}
 	}
 	_soc.coulomb_now = _soc.coulomb_max;//充满后,当前容量设置为最大容量
 	_soc.coulomb_now = _soc.coulomb_max;//充满后,当前容量设置为最大容量