X-Git-Url: https://www.fi.muni.cz/~kas/git//home/kas/public_html/git/?p=bike-lights.git;a=blobdiff_plain;f=firmware%2Fcontrol.c;h=3012ba65856aaa02d9e2939ace37ed2463863da0;hp=9b356993d359f575bdc76b865fd7e6fddbe91fff;hb=94524330d5709845fe0bbe8562fd68deedcb818c;hpb=783dec62b5002f6e1c1ff4417659d32b46aa5407 diff --git a/firmware/control.c b/firmware/control.c index 9b35699..3012ba6 100644 --- a/firmware/control.c +++ b/firmware/control.c @@ -83,6 +83,8 @@ void init_control() dim_mode = 0; towbar_mode = 0; braking = 0; + + pwmled_select_brightness(); } void brake_on() @@ -104,6 +106,7 @@ void brake_off() void toggle_dim_mode() { dim_mode = !dim_mode; + pwmled_select_brightness(); pattern_reload(); } @@ -172,3 +175,23 @@ pattern_t *laser_pattern_select() else return NULL; } + +void pwmled_select_brightness() +{ + uint16_t brightness = PWMLED_BRIGHTNESS(0, 2, 1, 0, 2); // default + + if (battery_critical) { + brightness = PWMLED_BRIGHTNESS(0, 0, 0, 0, 0); + } else if (ambient_zone < 2) { + if (dim_mode) + brightness = PWMLED_BRIGHTNESS(0, 1, 0, 0, 1); + else + brightness = PWMLED_BRIGHTNESS(0, 2, 1, 0, 2); + } else if (ambient_zone == 2) { + brightness = PWMLED_BRIGHTNESS(1, 3, 2, 1, 3); + } else if (ambient_zone == 3) { + brightness = PWMLED_BRIGHTNESS(2, 4, 2, 2, 4); + } + + pwmled_set_brightness(brightness); +}