]> www.fi.muni.cz Git - bike-lights.git/blobdiff - adc.c
ambient light sensor
[bike-lights.git] / adc.c
diff --git a/adc.c b/adc.c
index a37e95886f237828537666d5bb209048a521eaeb..b758721d73e4c298ff3561b0be773b7336879894 100644 (file)
--- a/adc.c
+++ b/adc.c
@@ -16,6 +16,8 @@ static unsigned char adc_mux[] = { // pwmleds should be first
        _BV(REFS1) | _BV(MUX2) | _BV(MUX0),
 };
 
+#define AMBIENT_ADC N_PWMLEDS
+
 #define LAST_ADC (sizeof(adc_mux)/sizeof(char))
 volatile static unsigned char current_adc = LAST_ADC;
 
@@ -27,7 +29,9 @@ static void start_next_adc()
                // test if current_adc should be measured
                if (current_adc < N_PWMLEDS && pwmled_is_on(current_adc))
                        goto found;
-               // TODO ambient light, battery sense, etc.
+               if (current_adc == AMBIENT_ADC)
+                       goto found;
+               // TODO battery sense, etc.
        }
 
        // all ADCs have been handled
@@ -66,7 +70,9 @@ ISR(ADC_vect) { // IRQ handler
 
        if (current_adc < N_PWMLEDS)
                pwmled_adc(current_adc, adcval);
-       // TODO ambient light, battery sense, etc.
+       if (current_adc == AMBIENT_ADC)
+               ambient_adc(adcval);
+       // TODO battery sense, etc.
        
        start_next_adc();
 }