Код: Выделить всё
uint16_t ReadADC(uint8_t __channel)
{
ADMUX = (ADMUX & 0xf0) | __channel; // Channel selection
ADCSRA |= _BV(ADSC); // Start conversion
while(!bit_is_set(ADCSRA,ADIF)); // Loop until conversion is complete
ADCSRA |= _BV(ADIF); // Clear ADIF by writing a 1 (this sets the value to 0)
return(ADC);
}в цикле while(!bit_is_set(ADCSRA,ADIF)); мы коротаем время пока не будут завершены преобразования, а потом сбрасываем флаг(сами).
не проще ли было бы сделать чтобы сдесь он сбрасывался аппаратно ?

