]> www.fi.muni.cz Git - tinyboard.git/blobdiff - projects/step-up/pwmled.c
Power management - make every module enable power for its own HW.
[tinyboard.git] / projects / step-up / pwmled.c
index 5f34c8f8a5f6b04c8223f2397452f735cef63b63..52993308edf3fa31daeaee91c11a61ab4676e7e9 100644 (file)
@@ -15,7 +15,7 @@ typedef struct {
 
 pwmled_t pwmleds[N_PWMLEDS];
 
-#define SENSE_MOHM     1000    /* 1 Ohm */
+#define SENSE_MOHM     3000    /* 1 Ohm */
 /*
  * Voltage in uV at ADC reading == 1 is 1100/gain/1024
  * ADC module returns sum of 1 << PWMLED_ADC_SHIFT measurements
@@ -35,14 +35,14 @@ static uint16_t adc_max[N_PWMLEDS] = {
 
 static uint16_t adc_vals[N_PWMLEDS*N_PWMLED_MODES] = {
        /* pwmled0 */
+       MA_GAIN_TO_ADC(   2,  1),
        MA_GAIN_TO_ADC(   5,  1),
        MA_GAIN_TO_ADC(  10,  1),
-       MA_GAIN_TO_ADC(  15,  1),
        MA_GAIN_TO_ADC(  20,  1),
        /* pwmled1 */
-       MA_GAIN_TO_ADC(   5,  1),
-       MA_GAIN_TO_ADC(  10,  1),
-       MA_GAIN_TO_ADC(  15,  1),
+       MA_GAIN_TO_ADC(   2,  1),
+       MA_GAIN_TO_ADC(   8,  1),
+       MA_GAIN_TO_ADC(  14,  1),
        MA_GAIN_TO_ADC(  20,  1),
 };
 
@@ -72,6 +72,7 @@ void init_pwmled()
                        led->err_sums[j] = 0;
                }
        }
+       pwmleds[0].state = ST_DISABLED;
 }
 
 void pwmled_set_mode(unsigned char n, unsigned char mode)
@@ -94,10 +95,10 @@ void pwmled_set_mode(unsigned char n, unsigned char mode)
                led->pwm = led->mode_pwm[mode - 1];
                led->err_sum = led->err_sums[mode - 1];
                led->mode_changed = 1;
-               pwm_set(n, led->pwm);
+               pwm_set(led->pwm);
        } else {
                led->state = ST_OFF;
-               pwm_off(n);
+               pwm_off();
        }
 }
 
@@ -135,7 +136,7 @@ static inline unsigned char pwmled_probed_ok(unsigned char n, uint16_t old_pwm)
                unsigned char i;
 
                led->state = ST_OFF;
-               pwm_off(n);
+               pwm_off();
 
                log_byte(0xF0);
                log_byte(n);
@@ -156,7 +157,7 @@ static inline unsigned char pwmled_probed_ok(unsigned char n, uint16_t old_pwm)
 static inline void pwmled_err(unsigned char n)
 {
        pwmleds[n].state = ST_DISABLED;
-       pwm_off(n);
+       pwm_off();
 
        log_byte(0xF1);
        log_byte(n);
@@ -208,6 +209,6 @@ void pwmled_adc(unsigned char n, uint16_t adcval)
        if (led->pwm == old_pwm)
                return;
 
-       pwm_set(n, led->pwm);
+       pwm_set(led->pwm);
 }