]> www.fi.muni.cz Git - bike-lights.git/blobdiff - firmware/pattern.c
firmware: emulate higher resolution of PWM
[bike-lights.git] / firmware / pattern.c
index a11999d66e152198b7c160a0d1f84cd4274ba2b4..d3e097740249474921fc3c55b53b38a9cd5ca018 100644 (file)
@@ -9,6 +9,11 @@ pattern_t off_pattern[] = {
        { 0, PATTERN_FOREVER },
 };
 
+pattern_t zero_pattern[] = {
+       { 0, 0x10 },
+       PATTERN_END
+};
+
 pattern_t on_pattern[] = {
        { 1, PATTERN_FOREVER },
 };
@@ -102,13 +107,13 @@ void pattern_init()
        unsigned char i;
 
        for (i = 0; i < N_LEDS; i++)
-               led_set_pattern(i, off_pattern);
+               led_set_pattern(i, zero_pattern);
 
        led_set_pattern(N_PWMLEDS+1, boot_pattern);
        test_running = 0;
 }
 
-static pattern_t *number_pattern(unsigned char num)
+pattern_t *number_pattern(unsigned char num)
 {
        if (num >= 9)
                num = 9;
@@ -121,10 +126,12 @@ static inline pattern_t *pattern_select(unsigned char n)
 {
        if (n < N_PWMLEDS && !pwmled_enabled(n))
                return off_pattern; // Don't mess with non-enabled LEDs
-       else if (n == 2)
+       else if (n < N_PWMLEDS)
                return mode1_pattern;
        else if (n == 3)
-               return number_pattern(1+ambient_zone);
+               return status_pattern_select(0);
+       else if (n == 4)
+               return status_pattern_select(1);
        return off_pattern;
 }
 
@@ -147,7 +154,3 @@ void patterns_next_tick()
        }
 }
 
-void led_set_status(unsigned char status)
-{
-       led_set_pattern(N_PWMLEDS+1, number_pattern(status));
-}