]> www.fi.muni.cz Git - tinyboard.git/blobdiff - projects/step-up/pwmled.c
Experimental step-up driver for chain of 5630 LEDs.
[tinyboard.git] / projects / step-up / pwmled.c
index 24fbe87cc8b6d93f2e6604af7744aeb22befd483..2ede13b3026bec1ac80ef2d68bf755125ff045b2 100644 (file)
@@ -25,8 +25,7 @@ static uint16_t adc_max = MA_TO_ADC(30);
 
 static uint16_t targets[N_PWMLED_MODES] = {
        MA_TO_ADC( 2),
-       MA_TO_ADC( 8),
-       MA_TO_ADC(14),
+       MA_TO_ADC(10),
        MA_TO_ADC(20),
 };
 
@@ -60,9 +59,11 @@ void pwmled_on_off(unsigned char mode)
        if (mode) {
                state = ST_ON;
                mode_changed = 1;
+               need_pwmled_adc = 1;
                pwm_set(pwm_val);
        } else {
                state = ST_OFF;
+               need_pwmled_adc = 0;
                pwm_off();
        }
 }
@@ -74,6 +75,8 @@ static inline void pwmled_err()
 
        log_byte(0xF1);
        log_flush();
+
+       set_error(ERR_PWMLED);
 }
 
 
@@ -111,6 +114,7 @@ void pwmled_adc(uint16_t adcval)
        if (pwm_val >= PWM_MAX
                || (pwm_val > (2*PWM_MAX/3) && adcval < 0x08)) {
                pwmled_err();
+               need_pwmled_adc = 0;
                return;
        }