From 02939ab1d831ab7bb02edb28cb0b21fb61bced56 Mon Sep 17 00:00:00 2001 From: tmk Date: Thu, 4 Sep 2014 05:30:00 +0900 Subject: Add battery management --- keyboard/hhkb_rn42/rn42/battery.c | 119 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 119 insertions(+) create mode 100644 keyboard/hhkb_rn42/rn42/battery.c (limited to 'keyboard/hhkb_rn42/rn42/battery.c') diff --git a/keyboard/hhkb_rn42/rn42/battery.c b/keyboard/hhkb_rn42/rn42/battery.c new file mode 100644 index 000000000..32de86448 --- /dev/null +++ b/keyboard/hhkb_rn42/rn42/battery.c @@ -0,0 +1,119 @@ +#include +#include +#include "battery.h" + + +/* + * Battery + */ +void battery_init(void) +{ + // blink + battery_led(LED_ON); _delay_ms(500); + battery_led(LED_OFF); _delay_ms(500); + battery_led(LED_ON); _delay_ms(500); + battery_led(LED_OFF); _delay_ms(500); + // LED indicates charger status + battery_led(LED_CHARGER); + + // ADC setting for voltage monitor + // Ref:2.56V band-gap, Input:ADC0(PF0), Prescale:128(16MHz/128=125KHz) + ADMUX = (1< BATTERY_VOLTAGE_LOW_RECOVERY) { + low = false; + } + return low; +} + +battery_status_t battery_status(void) +{ + if (USBSTA&(1< Date: Thu, 4 Sep 2014 17:08:23 +0900 Subject: Monitor battery and alert low voltage --- keyboard/hhkb_rn42/rn42/battery.c | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) (limited to 'keyboard/hhkb_rn42/rn42/battery.c') diff --git a/keyboard/hhkb_rn42/rn42/battery.c b/keyboard/hhkb_rn42/rn42/battery.c index 32de86448..c6988fe33 100644 --- a/keyboard/hhkb_rn42/rn42/battery.c +++ b/keyboard/hhkb_rn42/rn42/battery.c @@ -49,10 +49,11 @@ bool battery_charging(void) { if (!(USBSTA&(1< Date: Sat, 20 Sep 2014 06:12:49 +0900 Subject: Add FET swtich for battery ADC --- keyboard/hhkb_rn42/rn42/battery.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) (limited to 'keyboard/hhkb_rn42/rn42/battery.c') diff --git a/keyboard/hhkb_rn42/rn42/battery.c b/keyboard/hhkb_rn42/rn42/battery.c index c6988fe33..0320e1baf 100644 --- a/keyboard/hhkb_rn42/rn42/battery.c +++ b/keyboard/hhkb_rn42/rn42/battery.c @@ -21,6 +21,10 @@ void battery_init(void) ADMUX = (1<