Здравствуйте. Пытаюсь запустить АЦП в Free Runing Mode (ATmega164P), но у меня происходит лишь одно преобразование. Текст программы следующий:

void adc_init(void)
{
ADCSRA = 0x00; //disable adc
ADCSRB = 0x00;
ADMUX = 0x10; //select adc input 0
DIDR0 = 0xFF;
ADCSRA = 0x2E;//112
}

void main()
{adc_init();
SEI();
while (1)
{ADCSRA|=(1<<ADEN);
ADCSRA|=(1<<ADSC);
while (ADCSRA&(1<<ADEN));
}
}
Подскажите, пожалуйста, что не так?