]> git.karo-electronics.de Git - oswald.git/blobdiff - metawatch/mw_adc.c
Maybe a little sniff mode, add ambient light adc (not working),
[oswald.git] / metawatch / mw_adc.c
index 48501268cde35db8812f3621102dabb36a04bfc2..52c9e04ae401cdff5fa0810d1767212456f4f8f0 100644 (file)
@@ -58,17 +58,18 @@ unsigned int mw_get_battery_adc_val(void)
        ENABLE_ADC();
 
        /* WaitForAdcBusy(); */
-       while (ADC12CTL1 & ADC12BUSY);
+       while (ADC12CTL1 & ADC12BUSY)
+               nop();
 
-       /* Convert the ADC count for the battery input into a voltage 
+       /* Convert the ADC count for the battery input into a voltage
         * ADC12MEM1: Counts Battery Voltage in ADC counts
         * Result: Battery voltage in millivolts */
        BATTERY_SENSE_DISABLE();
 
-       return (unsigned int)(CONVERSION_FACTOR_BATTERY * (double)ADC12MEM1);  
+       return (unsigned int)(CONVERSION_FACTOR_BATTERY * (double)ADC12MEM1);
 }
 
-unsigned char mw_get_battery_percentage_from_val(unsigned int BattVal)
+uint8_t mw_get_battery_percentage_from_val(unsigned int BattVal)
 {
        if (BattVal > BATTERY_FULL_LEVEL)
                BattVal = BATTERY_FULL_LEVEL;
@@ -81,3 +82,20 @@ unsigned char mw_get_battery_percentage_from_val(unsigned int BattVal)
        return (unsigned char)BattVal;
 }
 
+unsigned int mw_get_amblight_adc_val(void)
+{ 
+       LIGHT_SENSE_ENABLE();
+
+       CLEAR_START_ADDR();
+       ADC12CTL1 |= ADC12CSTARTADD_2;
+       ENABLE_ADC();
+
+       /* WaitForAdcBusy(); */
+       while (ADC12CTL1 & ADC12BUSY)
+               nop();
+
+       LIGHT_SENSE_DISABLE();
+
+       return ADC12MEM2;
+}
+