summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorUwe Freese <thebreaker@rockbox.org>2002-12-14 21:01:32 +0000
committerUwe Freese <thebreaker@rockbox.org>2002-12-14 21:01:32 +0000
commit0f30f66c6c575d9a3aa8bd4fa2fe6607db7b2076 (patch)
treebf116ba56b50159b8a87abaf00c90237613f7ce7
parent48e8e98efa4cb30a72ee4f8ef7be17e372db84b7 (diff)
downloadrockbox-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.c9
-rw-r--r--firmware/powermgmt.h3
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 */