X-Git-Url: https://www.fi.muni.cz/~kas/git//home/kas/public_html/git/?a=blobdiff_plain;f=firmware%2Fambient.c;h=19b7a13cd86003bc4ec0407f9aa42ecbe287719d;hb=b235c2cde53066ab6afd280ccddacd866778c252;hp=aeaa62ac8e5436bf13b3fa4c315078c87e1fd0e0;hpb=b2e743a2225d5014c7e614ebc9feb7eb51bc4ef6;p=bike-lights.git diff --git a/firmware/ambient.c b/firmware/ambient.c index aeaa62a..19b7a13 100644 --- a/firmware/ambient.c +++ b/firmware/ambient.c @@ -23,13 +23,12 @@ typedef struct { * Note: these have to be sorted, starting with 0, ending with 0xFFFF * and having small overlaps in order to provide a bit of hysteresis. */ -static ambient_zone_t ambient_zones[] = { +static ambient_zone_t ambient_zones[N_AMBIENT_ZONES] = { { 0x0000 , 0x0270<= AMBIENT_LOG_SIZE - 1) return; - eeprom_write_byte(&ambient_log[ambient_log_offset++], ambient_min); - // eeprom_write_byte(&ambient_log[ambient_log_offset++], ambient_max); + // eeprom_write_byte(&ambient_log[ambient_log_offset++], ambient_min); + eeprom_write_byte(&ambient_log[ambient_log_offset++], ambient_max); eeprom_write_byte(&ambient_log[ambient_log_offset++], ambient_16drop); ambient_min = 0xFF; @@ -72,18 +71,10 @@ void ambient_log_min_max() ambient_16drop = 0; } -void ambient_zone_changed() +static inline void ambient_zone_changed() { -#if 1 - log_byte(0xab); - log_byte(ambient_zone); - log_word(ambient_val); - log_flush(); -#endif - - // led_set_pattern(N_PWMLEDS, status_led_pattern_select()); - // led_set_pattern(N_PWMLEDS+1, illumination_led_pattern_select()); - // pattern_reload(); + pwmled_select_brightness(); + pattern_reload(); } void ambient_adc(uint16_t adcval) @@ -116,14 +107,19 @@ void ambient_adc(uint16_t adcval) if (ambient_max < byte_val) ambient_max = byte_val; -#if 0 + + // user_param ambient zone override + if ((byte_val = get_user_param(0)) > 0) + ambient_zone = byte_val - 1; + if (old_zone != ambient_zone) { +#if 0 log_byte(0xab); log_byte(ambient_zone); log_word(adcval); log_flush(); - } - // ambient_zone_changed(); #endif + ambient_zone_changed(); + } }