diff options
Diffstat (limited to 'drivers/battery/battery.c')
-rw-r--r-- | drivers/battery/battery.c | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/drivers/battery/battery.c b/drivers/battery/battery.c new file mode 100644 index 0000000000..65497399e8 --- /dev/null +++ b/drivers/battery/battery.c @@ -0,0 +1,31 @@ +// Copyright 2025 QMK +// SPDX-License-Identifier: GPL-2.0-or-later + +#include "battery_driver.h" +#include "battery.h" +#include "timer.h" + +#ifndef BATTERY_SAMPLE_INTERVAL +# define BATTERY_SAMPLE_INTERVAL 30000 +#endif + +static uint8_t last_bat_level = 100; + +void battery_init(void) { + battery_driver_init(); + + last_bat_level = battery_driver_sample_percent(); +} + +void battery_task(void) { + static uint32_t bat_timer = 0; + if (timer_elapsed32(bat_timer) > BATTERY_SAMPLE_INTERVAL) { + last_bat_level = battery_driver_sample_percent(); + + bat_timer = timer_read32(); + } +} + +uint8_t battery_get_percent(void) { + return last_bat_level; +} |