From: Jan "Yenya" Kasprzak Date: Thu, 28 Feb 2013 00:00:57 +0000 (+0100) Subject: control.c: handle "battery critical" state X-Git-Url: https://www.fi.muni.cz/~kas/git//home/kas/public_html/git/?p=bike-lights.git;a=commitdiff_plain;h=df47dcc3b0407d6a91fa0ed8acf7a40875d855e6 control.c: handle "battery critical" state --- diff --git a/firmware/control.c b/firmware/control.c index 1a768e6..7a8d447 100644 --- a/firmware/control.c +++ b/firmware/control.c @@ -124,7 +124,8 @@ void set_panic_mode() pattern_t *pwmled0_pattern_select() { - // TODO: battery critical + if (battery_critical) + return on1_pattern; if (towbar_mode) return NULL; @@ -140,10 +141,11 @@ pattern_t *pwmled0_pattern_select() pattern_t *pwmled1_pattern_select() { - // TODO: battery critical - #ifndef TESTING_FW return NULL; +#else + if (battery_critical) + return on1_pattern; #endif if (towbar_mode) { @@ -168,11 +170,11 @@ pattern_t *pwmled1_pattern_select() pattern_t *pwmled2_pattern_select() { - // TODO: battery critical - #ifndef TESTING_FW - return on3_pattern; + if (battery_critical) + return on1_pattern; #endif + switch (ambient_zone) { case 0: return dim_mode ? on2_pattern : on3_pattern; case 1: return dim_mode ? slow1_pattern : normal2_pattern; @@ -194,7 +196,8 @@ pattern_t *status_led_pattern_select() pattern_t *illumination_led_pattern_select() { - // todo: battery critical + if (battery_critical) + return NULL; switch (ambient_zone) { case 0: return dim_mode diff --git a/firmware/lights.h b/firmware/lights.h index 5032e11..7bdc5b6 100644 --- a/firmware/lights.h +++ b/firmware/lights.h @@ -88,6 +88,7 @@ pattern_t *buttons_setup_status0_pattern_select(); pattern_t *buttons_setup_status1_pattern_select(); /* battery.c */ +extern volatile unsigned char battery_critical; void battery_adc(); void init_battery(); unsigned char battery_gauge();