Clean ADC code of battery_voltage()
authortmk <hasu@tmk-kbd.com>
Tue, 2 Dec 2014 17:08:27 +0000 (02:08 +0900)
committertmk <hasu@tmk-kbd.com>
Thu, 15 Jan 2015 08:08:48 +0000 (17:08 +0900)
keyboard/hhkb_rn42/rn42/battery.c

index 720d63bebbcf508e91471a78954015b34aa4084b..3ecde522342180e7c4c107eba34879edad9e2292 100644 (file)
@@ -20,7 +20,6 @@ void battery_init(void)
     // Ref:2.56V band-gap, Input:ADC0(PF0), Prescale:128(16MHz/128=125KHz)
     ADMUX = (1<<REFS1) | (1<<REFS0);
     ADCSRA = (1<<ADPS2) | (1<<ADPS1) | (1<<ADPS0);
-    ADCSRA |= (1<<ADEN);
     // digital input buffer disable(24.9.5)
     DIDR0 = (1<<ADC0D) | (1<<ADC4D) | (1<<ADC5D) | (1<<ADC7D);
     DIDR1 = (1<<AIN0D);
@@ -92,23 +91,13 @@ uint16_t battery_voltage(void)
     PORTF |=  (1<<4);
 
     volatile uint16_t bat;
-    //ADCSRA |= (1<<ADEN);
-
-    // discard first result
-    ADCSRA |= (1<<ADSC);
-    while (ADCSRA & (1<<ADSC)) ;
-    bat = ADC;
-
-    // discard second result
-    ADCSRA |= (1<<ADSC);
-    while (ADCSRA & (1<<ADSC)) ;
-    bat = ADC;
+    ADCSRA |= (1<<ADEN);
 
     ADCSRA |= (1<<ADSC);
     while (ADCSRA & (1<<ADSC)) ;
     bat = ADC;
 
-    //ADCSRA &= ~(1<<ADEN);
+    ADCSRA &= ~(1<<ADEN);
 
     // ADC disable voltate divider(PF4)
     DDRF  |=  (1<<4);
Imprint / Impressum