From 9872b66cd100dce18e2e6f4f77ee2beaa50b8075 Mon Sep 17 00:00:00 2001 From: Heikki Hannikainen Date: Tue, 13 Aug 2002 16:06:29 +0000 Subject: Use average of two samples at both ends of the range for calculating smoother delta values. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@1716 a1c6a512-1295-4272-9138-f99709370657 --- firmware/powermgmt.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) (limited to 'firmware/powermgmt.c') diff --git a/firmware/powermgmt.c b/firmware/powermgmt.c index 41bd1c4dec..df796f9140 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"); -- cgit v1.2.3