diff options
author | Uwe Freese <thebreaker@rockbox.org> | 2002-12-14 21:01:32 +0000 |
---|---|---|
committer | Uwe Freese <thebreaker@rockbox.org> | 2002-12-14 21:01:32 +0000 |
commit | 0f30f66c6c575d9a3aa8bd4fa2fe6607db7b2076 (patch) | |
tree | bf116ba56b50159b8a87abaf00c90237613f7ce7 | |
parent | 48e8e98efa4cb30a72ee4f8ef7be17e372db84b7 (diff) | |
download | rockbox-0f30f66c6c575d9a3aa8bd4fa2fe6607db7b2076.tar.gz rockbox-0f30f66c6c575d9a3aa8bd4fa2fe6607db7b2076.zip |
max charge duration now depends on batt. capacity and is a little longer
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@2992 a1c6a512-1295-4272-9138-f99709370657
-rw-r--r-- | firmware/powermgmt.c | 9 | ||||
-rw-r--r-- | firmware/powermgmt.h | 3 |
2 files changed, 7 insertions, 5 deletions
diff --git a/firmware/powermgmt.c b/firmware/powermgmt.c index bcf0659585..62bc5d3814 100644 --- a/firmware/powermgmt.c +++ b/firmware/powermgmt.c | |||
@@ -466,10 +466,11 @@ static void power_thread(void) | |||
466 | snprintf(power_message, POWER_MESSAGE_LEN, "chg pause %d min", charge_pause); | 466 | snprintf(power_message, POWER_MESSAGE_LEN, "chg pause %d min", charge_pause); |
467 | } else { | 467 | } else { |
468 | /* calculate max charge time depending on current battery level */ | 468 | /* calculate max charge time depending on current battery level */ |
469 | /* take 20% more because battery level is not linear */ | 469 | /* take 35% more because battery level is not linear */ |
470 | charge_max_time_now = CHARGE_MAX_TIME * (100 + 30 - battery_level()) / 100; | 470 | i = CHARGE_MAX_TIME_1500 * BATTERY_CAPACITY / 1500; |
471 | if (charge_max_time_now > CHARGE_MAX_TIME) { | 471 | charge_max_time_now = i * (100 + 35 - battery_level()) / 100; |
472 | charge_max_time_now = CHARGE_MAX_TIME; | 472 | if (charge_max_time_now > i) { |
473 | charge_max_time_now = i; | ||
473 | } | 474 | } |
474 | snprintf(power_message, POWER_MESSAGE_LEN, "ChgAt %d%% max %dm", battery_level(), charge_max_time_now); | 475 | snprintf(power_message, POWER_MESSAGE_LEN, "ChgAt %d%% max %dm", battery_level(), charge_max_time_now); |
475 | 476 | ||
diff --git a/firmware/powermgmt.h b/firmware/powermgmt.h index f2f3a0ef94..5e828e265f 100644 --- a/firmware/powermgmt.h +++ b/firmware/powermgmt.h | |||
@@ -39,7 +39,8 @@ | |||
39 | 39 | ||
40 | #ifdef HAVE_CHARGE_CTRL | 40 | #ifdef HAVE_CHARGE_CTRL |
41 | #define POWER_MESSAGE_LEN 32 /* power thread status message */ | 41 | #define POWER_MESSAGE_LEN 32 /* power thread status message */ |
42 | #define CHARGE_MAX_TIME 8*60 /* minutes: maximum charging time */ | 42 | #define CHARGE_MAX_TIME_1500 450 /* minutes: maximum charging time for 1500 mAh batteries */ |
43 | /* actual max time depends also on BATTERY_CAPACITY! */ | ||
43 | #define CHARGE_MIN_TIME 10 /* minutes: minimum charging time */ | 44 | #define CHARGE_MIN_TIME 10 /* minutes: minimum charging time */ |
44 | #define CHARGE_RESTART_HI 85 /* %: when to restart charging in 'charge' mode */ | 45 | #define CHARGE_RESTART_HI 85 /* %: when to restart charging in 'charge' mode */ |
45 | /* attention: if set too high, normal charging is started in trickle mode */ | 46 | /* attention: if set too high, normal charging is started in trickle mode */ |