2.5 KiB
2.5 KiB
Battery Driver
This driver provides support for sampling battery level.
Usage
To use this driver, add the following to your rules.mk:
BATTERY_DRIVER_REQUIRED = yes
Basic Configuration
Add the following to your config.h:
| Define | Default | Description |
|---|---|---|
BATTERY_SAMPLE_INTERVAL |
30000 |
The time between battery samples in milliseconds. |
Driver Configuration
Driver selection can be configured in rules.mk as BATTERY_DRIVER. Valid values are adc (default), vendor, or custom. See below for information on individual drivers.
ADC Driver
This is the default battery driver. The default configuration assumes the battery is connected to a ADC capable pin through a voltage divider.
BATTERY_DRIVER = adc
The following #defines apply only to the adc driver:
| Define | Default | Description |
|---|---|---|
BATTERY_PIN |
Not defined | The GPIO pin connected to the voltage divider. |
BATTERY_REF_VOLTAGE_MV |
3300 |
The ADC reverence voltage, in millivolts. |
BATTERY_VOLTAGE_DIVIDER_R1 |
100000 |
The voltage divider resistance, in kOhm. Set to 0 to disable. |
BATTERY_VOLTAGE_DIVIDER_R1 |
100000 |
The voltage divider resistance, in kOhm. Set to 0 to disable. |
BATTERY_ADC_RESOLUTION |
10 |
The ADC resolution configured for the ADC Driver. |
Functions
uint8_t battery_get_percent(void)
Sample battery level.
Return Value
The battery percentage, in the range 0-100.
Callbacks
void battery_percent_changed_user(uint8_t level)
User hook called when battery level changed.
Arguments
uint8_t level
The battery percentage, in the range 0-100.
void battery_percent_changed_kb(uint8_t level)
Keyboard hook called when battery level changed.
Arguments
uint8_t level
The battery percentage, in the range 0-100.