diff options
Diffstat (limited to 'firmware/powermgmt.c')
-rw-r--r-- | firmware/powermgmt.c | 20 |
1 files changed, 7 insertions, 13 deletions
diff --git a/firmware/powermgmt.c b/firmware/powermgmt.c index a05e0aeb68..51ea99f6fa 100644 --- a/firmware/powermgmt.c +++ b/firmware/powermgmt.c | |||
@@ -88,16 +88,12 @@ static long last_event_tick = 0; | |||
88 | #if (CONFIG_BATTERY_MEASURE & PERCENTAGE_MEASURE) == PERCENTAGE_MEASURE | 88 | #if (CONFIG_BATTERY_MEASURE & PERCENTAGE_MEASURE) == PERCENTAGE_MEASURE |
89 | #ifdef SIMULATOR | 89 | #ifdef SIMULATOR |
90 | int _battery_level(void) { return -1; } | 90 | int _battery_level(void) { return -1; } |
91 | int _battery_voltage(void); | ||
92 | extern const unsigned short percent_to_volt_discharge[BATTERY_TYPES_COUNT][11]; | ||
93 | extern const unsigned short percent_to_volt_charge[11]; | ||
94 | #else | ||
95 | int _battery_voltage(void) { return -1; } | ||
96 | const unsigned short percent_to_volt_discharge[BATTERY_TYPES_COUNT][11]; | ||
97 | const unsigned short percent_to_volt_charge[11]; | ||
98 | #endif | 91 | #endif |
99 | #elif (CONFIG_BATTERY_MEASURE & VOLTAGE_MEASURE) == VOLTAGE_MEASURE | 92 | #else |
100 | int _battery_level(void) { return -1; } | 93 | int _battery_level(void) { return -1; } |
94 | #endif | ||
95 | |||
96 | #if (CONFIG_BATTERY_MEASURE & VOLTAGE_MEASURE) == VOLTAGE_MEASURE | ||
101 | /* | 97 | /* |
102 | * Average battery voltage and charger voltage, filtered via a digital | 98 | * Average battery voltage and charger voltage, filtered via a digital |
103 | * exponential filter (aka. exponential moving average, scaled): | 99 | * exponential filter (aka. exponential moving average, scaled): |
@@ -106,10 +102,8 @@ int _battery_level(void) { return -1; } | |||
106 | static unsigned int avgbat; | 102 | static unsigned int avgbat; |
107 | /* filtered battery voltage, millivolts */ | 103 | /* filtered battery voltage, millivolts */ |
108 | static unsigned int battery_millivolts; | 104 | static unsigned int battery_millivolts; |
109 | #elif (CONFIG_BATTERY_MEASURE == 0) | 105 | #else |
110 | int _battery_voltage(void) { return -1; } | 106 | int _battery_voltage(void) { return -1; } |
111 | int _battery_level(void) { return -1; } | ||
112 | |||
113 | const unsigned short percent_to_volt_discharge[BATTERY_TYPES_COUNT][11]; | 107 | const unsigned short percent_to_volt_discharge[BATTERY_TYPES_COUNT][11]; |
114 | const unsigned short percent_to_volt_charge[11]; | 108 | const unsigned short percent_to_volt_charge[11]; |
115 | #endif | 109 | #endif |
@@ -156,9 +150,9 @@ void battery_read_info(int *voltage, int *level) | |||
156 | *voltage = millivolts; | 150 | *voltage = millivolts; |
157 | 151 | ||
158 | if (level) { | 152 | if (level) { |
159 | percent = voltage_to_battery_level(millivolts); | 153 | percent = _battery_level(); |
160 | if (percent < 0) | 154 | if (percent < 0) |
161 | percent = _battery_level(); | 155 | percent = voltage_to_battery_level(millivolts); |
162 | *level = percent; | 156 | *level = percent; |
163 | } | 157 | } |
164 | } | 158 | } |