]> www.fi.muni.cz Git - bike-lights.git/blobdiff - firmware/adc.c
ambient light: make three measurements
[bike-lights.git] / firmware / adc.c
index b7dad0ad59b31a940acecec248c91fd14ba8b2aa..4213ef56bc01b5114ee2c76f6ef16dfce1e7158d 100644 (file)
@@ -21,19 +21,19 @@ static void inline setup_mux(unsigned char n)
        switch (n) {
        case 0: // pwmled 1: 1.1V, ADC0,1 (PA0,1), gain 20
                ADMUX = _BV(REFS1) | _BV(MUX3) | _BV(MUX1) | _BV(MUX0);
-               sum_shift = 3; // 8 measurements
+               sum_shift = PWMLED_ADC_SHIFT;
                break;
        case 1: // pwmled 2: 1.1V, ADC2,1 (PA2,1), gain 20
                ADMUX = _BV(REFS1) | _BV(MUX3) | _BV(MUX2) | _BV(MUX1);
-               sum_shift = 3; // 8 measurements
+               sum_shift = PWMLED_ADC_SHIFT;
                break;
        case 2: // pwmled 3: 1.1V, ADC4 (PA5), single-ended
                ADMUX = _BV(REFS1) | _BV(MUX2);
-               sum_shift = 3; // 8 measurements
+               sum_shift = PWMLED_ADC_SHIFT;
                break;
        case 3: // ambient light: 1.1V, ADC5 (PA6), single-ended
                ADMUX = _BV(REFS1) | _BV(MUX2) | _BV(MUX0);
-               sum_shift = 0; // 1 measurement
+               sum_shift = 3; // 3 measurements
                break;
        case 4: // batt voltage: 1.1V, ADC6 (PA7), single-ended
                ADMUX = _BV(REFS1) | _BV(MUX2) | _BV(MUX1);
@@ -146,7 +146,7 @@ ISR(ADC_vect) { // IRQ handler
        if (current_adc < N_PWMLEDS)
                pwmled_adc(current_adc, adc_sum);
        if (current_adc == AMBIENT_ADC)
-               ambient_adc(adcval);
+               ambient_adc(adc_sum);
        if (current_adc == BATTERY_ADC)
                battery_adc(adcval);