|
@@ -9,6 +9,7 @@
|
|
|
static soc_t _soc;
|
|
static soc_t _soc;
|
|
|
static uint8_t chargering = 0;
|
|
static uint8_t chargering = 0;
|
|
|
static u64 time_ms = 0;
|
|
static u64 time_ms = 0;
|
|
|
|
|
+static float soc_delta_time = 0;
|
|
|
static float _charger_coefficient = 1.0f;
|
|
static float _charger_coefficient = 1.0f;
|
|
|
static float _discharger_coefficient = 1.0f;
|
|
static float _discharger_coefficient = 1.0f;
|
|
|
uint32_t charger_remain_time = 0;
|
|
uint32_t charger_remain_time = 0;
|
|
@@ -39,15 +40,16 @@ void soc_init(void){
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
void soc_log(void){
|
|
void soc_log(void){
|
|
|
- soc_debug("C now: %.1f\n", _soc.coulomb_now);
|
|
|
|
|
- soc_debug("C min: %.1f\n", _soc.coulomb_min);
|
|
|
|
|
- soc_debug("C max: %.1f\n", _soc.coulomb_max);
|
|
|
|
|
- soc_debug("C char: %.1f\n", _soc.charger_coulomb);
|
|
|
|
|
- soc_debug("C dischar: %.1f\n", _soc.dischrger_coulomb);
|
|
|
|
|
- soc_debug("C pre char: %.1f\n", _soc.pre_discharger_coulomb);
|
|
|
|
|
- soc_debug("C pre dischar: %.1f\n", _soc.pre_charger_coulomb);
|
|
|
|
|
|
|
+ soc_debug("C now: %f\n", _soc.coulomb_now);
|
|
|
|
|
+ soc_debug("C min: %f\n", _soc.coulomb_min);
|
|
|
|
|
+ soc_debug("C max: %f\n", _soc.coulomb_max);
|
|
|
|
|
+ soc_debug("C char: %f\n", _soc.charger_coulomb);
|
|
|
|
|
+ soc_debug("C dischar: %f\n", _soc.dischrger_coulomb);
|
|
|
|
|
+ soc_debug("C pre char: %f\n", _soc.pre_discharger_coulomb);
|
|
|
|
|
+ soc_debug("C pre dischar: %f\n", _soc.pre_charger_coulomb);
|
|
|
soc_debug("C tol: %d\n", _soc.total_coulomb);
|
|
soc_debug("C tol: %d\n", _soc.total_coulomb);
|
|
|
- soc_debug("C energy: %.1f\n", _soc.energy);
|
|
|
|
|
|
|
+ soc_debug("C energy: %f\n", _soc.energy);
|
|
|
|
|
+ soc_debug("C delta time %fs\n", soc_delta_time);
|
|
|
if (chargering){
|
|
if (chargering){
|
|
|
soc_debug("C remain %d\n", charger_remain_time);
|
|
soc_debug("C remain %d\n", charger_remain_time);
|
|
|
}
|
|
}
|
|
@@ -81,7 +83,8 @@ static void calibrate_soc_by_ocv(void){
|
|
|
static __inline__ float _delta_time(void){
|
|
static __inline__ float _delta_time(void){
|
|
|
u32 delta = shark_get_mseconds() - time_ms;
|
|
u32 delta = shark_get_mseconds() - time_ms;
|
|
|
time_ms = shark_get_mseconds();
|
|
time_ms = shark_get_mseconds();
|
|
|
- return (float)delta / (1000.0f); //Ãë
|
|
|
|
|
|
|
+ soc_delta_time = (float)delta / (1000.0f);
|
|
|
|
|
+ return soc_delta_time; //Ãë
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
void soc_update_by_ocv(void){
|
|
void soc_update_by_ocv(void){
|