Цитата(Сергей Борщ @ Jan 5 2011, 23:32)

А частота тактирования АЦП находится в допустимых пределах?
Истина была около того.
Похоже глюк протеуса был. Поставил меньше частоту выборки, все заработало.
Спасибо.
Цитата(Xenia @ Jan 5 2011, 23:41)

Слишком рано считываете. Ждать надо не исчезновения бита ADIF (0x10), а исчезновения бита ADSC (0x40).
Т.е. вместо
while ((ADCSRA & 0x10)==0);
надо ждать
while ((ADCSRA & 0x40)==0);
А бит ADIF (0x10) никогда не появится, т.к. разрешения на прерывание вы не давали (не устанавливали ADIE). Поэтому ожидание у вас отсутствует и АЦП не успевает накопить число.
И вот этого
ADCSRA|=0x10;
делать не надо.
Но такой код генерит CodeVision сам.
Интересно, но все работает