From 18302bf9c46093c90e6bfea499360e342c996151 Mon Sep 17 00:00:00 2001 From: Joey Castillo Date: Sat, 5 Feb 2022 17:42:43 -0500 Subject: movement: add low battery warning to simple clock --- movement/watch_faces/clock/simple_clock_face.c | 14 ++++++++++++++ movement/watch_faces/clock/simple_clock_face.h | 2 ++ 2 files changed, 16 insertions(+) (limited to 'movement/watch_faces') diff --git a/movement/watch_faces/clock/simple_clock_face.c b/movement/watch_faces/clock/simple_clock_face.c index 60a7a4db..ac9e2a1f 100644 --- a/movement/watch_faces/clock/simple_clock_face.c +++ b/movement/watch_faces/clock/simple_clock_face.c @@ -68,6 +68,20 @@ bool simple_clock_face_loop(movement_event_t event, movement_settings_t *setting previous_date_time = state->previous_date_time; state->previous_date_time = date_time.reg; + // check the battery voltage once a day... + if (date_time.unit.day != state->last_battery_check) { + state->last_battery_check = date_time.unit.day; + watch_enable_adc(); + uint16_t voltage = watch_get_vcc_voltage(); + watch_disable_adc(); + // 2.2 volts will happen when the battery has maybe 5-10% remaining? + // we can refine this later. + state->battery_low = (voltage < 2200); + } + + // ...and set the LAP indicator if low. + if (state->battery_low) watch_set_indicator(WATCH_INDICATOR_LAP); + if (date_time.reg >> 6 == previous_date_time >> 6 && event.event_type != EVENT_LOW_ENERGY_UPDATE) { // everything before seconds is the same, don't waste cycles setting those segments. pos = 8; diff --git a/movement/watch_faces/clock/simple_clock_face.h b/movement/watch_faces/clock/simple_clock_face.h index 6e8665bf..aa625700 100644 --- a/movement/watch_faces/clock/simple_clock_face.h +++ b/movement/watch_faces/clock/simple_clock_face.h @@ -29,8 +29,10 @@ typedef struct { uint32_t previous_date_time; + uint8_t last_battery_check; uint8_t watch_face_index; bool signal_enabled; + bool battery_low; } simple_clock_state_t; void simple_clock_face_setup(movement_settings_t *settings, uint8_t watch_face_index, void ** context_ptr); -- cgit v1.2.3