~ruther/qmk_firmware

25aee431bd83b46d694293c85a939d476943a5aa — tmk 10 years ago 825be9d
Clean ADC code of battery_voltage()
1 files changed, 2 insertions(+), 13 deletions(-)

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