Browse Source

Clean ADC code of battery_voltage()

tags/v1.9
tmk 9 years ago
parent
commit
25aee431bd
1 changed files with 2 additions and 13 deletions
  1. 2
    13
      keyboard/hhkb_rn42/rn42/battery.c

+ 2
- 13
keyboard/hhkb_rn42/rn42/battery.c View 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);

Loading…
Cancel
Save