From cb1c160753d04c7c9106284085b74dbf5248f92c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?King=20K=C3=A9vin?= Date: Mon, 4 Apr 2016 22:10:13 +0200 Subject: [PATCH] add battery voltage display on LED --- main.c | 22 +++++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) diff --git a/main.c b/main.c index 08a1051..a2b2d57 100644 --- a/main.c +++ b/main.c @@ -399,7 +399,7 @@ int main(void) adc_enable_discontinuous_mode_regular(ADC1, 1); // do only one conversion per sequence adc_enable_external_trigger_regular(ADC1, ADC_CR2_EXTSEL_SWSTART); // use software trigger to start conversion adc_power_on(ADC1); // switch on ADC - for (uint32_t i = 0; i < 800000; i++) { // wait t_stab for the ADC to stabilize + for (uint32_t i=0; i<800000; i++) { // wait t_stab for the ADC to stabilize __asm__("nop"); } adc_reset_calibration(ADC1); // remove previous non-calibration @@ -422,6 +422,26 @@ int main(void) printf("/!\\ low "); } printf("battery voltage: %.2fV\n", battery_voltage); + + // show voltage on LEDs + if (battery_voltage<2.4) { // low battery voltage + for (uint16_t led=0; led<2; led++) { // display red on 2 LEDs + clock_leds[led*3+0] = 0xff; // set red + } + } else if (battery_voltage>3.0) { // battery full + for (uint16_t led=0; led