]> www.fi.muni.cz Git - bike-lights.git/blobdiff - firmware/pattern.c
pattern: laser diodes as gpio 4
[bike-lights.git] / firmware / pattern.c
index 59692bf32a97e07f6f468d878e33cf9c1c7e980d..03a7517b43f0c4e01e38b6c151834629a5a48fee 100644 (file)
@@ -76,6 +76,11 @@ static pattern_t pattern_invnum[] = {
        PATTERN_END
 };
 
+pattern_t off_pattern[] = {
+       { 0, 0x1E },
+       PATTERN_END
+};
+
 static void led_set_mode(unsigned char n, unsigned char mode)
 {
        if (n < N_PWMLEDS) {
@@ -87,12 +92,10 @@ static void led_set_mode(unsigned char n, unsigned char mode)
 
 void led_set_pattern(unsigned char n, pattern_t *pattern)
 {
-       led_patterns[n] = pattern;
+       if (!pattern)
+               pattern = off_pattern;
 
-       if (!pattern) {
-               led_set_mode(n, 0);
-               return;
-       }
+       led_patterns[n] = pattern;
 
        led_counters[n] = pattern->duration;
        led_set_mode(n, pattern->mode);
@@ -132,6 +135,7 @@ static pattern_t *pattern_select(unsigned char n)
        case 2: return pwmled2_pattern_select();
        case 3: return status_led_pattern_select();
        case 4: return illumination_led_pattern_select();
+       case 6: return laser_pattern_select();
        default: return NULL;
        }
 }