summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--apps/debug_menu.c8
-rw-r--r--firmware/powermgmt.c8
2 files changed, 12 insertions, 4 deletions
diff --git a/apps/debug_menu.c b/apps/debug_menu.c
index cc1ca2c..c557129 100644
--- a/apps/debug_menu.c
+++ b/apps/debug_menu.c
@@ -507,15 +507,19 @@ void view_battery(void)
lcd_puts(0, 4, buf);
#endif
y = ( power_history[POWER_HISTORY_LEN-1] * 100
+ + power_history[POWER_HISTORY_LEN-2] * 100
+ - power_history[POWER_HISTORY_LEN-1-CHARGE_END_NEGD+1] * 100
- power_history[POWER_HISTORY_LEN-1-CHARGE_END_NEGD] * 100 )
- / CHARGE_END_NEGD;
+ / CHARGE_END_NEGD / 2;
snprintf(buf, 30, "short delta: %d", y);
lcd_puts(0, 5, buf);
y = ( power_history[POWER_HISTORY_LEN-1] * 100
+ + power_history[POWER_HISTORY_LEN-2] * 100
+ - power_history[POWER_HISTORY_LEN-1-CHARGE_END_ZEROD+1] * 100
- power_history[POWER_HISTORY_LEN-1-CHARGE_END_ZEROD] * 100 )
- / CHARGE_END_ZEROD;
+ / CHARGE_END_ZEROD / 2;
snprintf(buf, 30, "long delta: %d", y);
lcd_puts(0, 6, buf);
diff --git a/firmware/powermgmt.c b/firmware/powermgmt.c
index 41bd1c4..df796f9 100644
--- a/firmware/powermgmt.c
+++ b/firmware/powermgmt.c
@@ -179,8 +179,10 @@ static void power_thread(void)
* 0.0005 V).
*/
delta = ( power_history[POWER_HISTORY_LEN-1] * 100
+ + power_history[POWER_HISTORY_LEN-2] * 100
+ - power_history[POWER_HISTORY_LEN-1-CHARGE_END_NEGD+1] * 100
- power_history[POWER_HISTORY_LEN-1-CHARGE_END_NEGD] * 100 )
- / CHARGE_END_NEGD;
+ / CHARGE_END_NEGD / 2;
if (delta < -100) { /* delta < -10 mV */
DEBUGF("power: short-term negative delta, enough!\n");
@@ -189,8 +191,10 @@ static void power_thread(void)
} else {
/* if we didn't disable the charger in the previous test, check for low positive delta */
delta = ( power_history[POWER_HISTORY_LEN-1] * 100
+ + power_history[POWER_HISTORY_LEN-2] * 100
+ - power_history[POWER_HISTORY_LEN-1-CHARGE_END_ZEROD+1] * 100
- power_history[POWER_HISTORY_LEN-1-CHARGE_END_ZEROD] * 100 )
- / CHARGE_END_ZEROD;
+ / CHARGE_END_ZEROD / 2;
if (delta < 1) { /* delta < 0.1 mV */
DEBUGF("power: long-term small positive delta, enough!\n");