Цитата(bodja74 @ Jan 25 2007, 21:38)

Kovrov ,респект,дали правильное направление в поиске трабла.

Сделал по прерыванию от АЦП ,так как уже были наброски.
Вот что выяснилось ,при переключении (вне зависимости дергаем ADEN или нет) ,АЦП делает 1 холостой ход ,при этом генерируя прерывание.
А при включеном бите ADATE нужно пропустить 2 цикла конверсии,и после этого уже считывать результат.
Я знал что на переинациализацию нужно дополнительное время ,но не думал что будут генерироваться прерывания.
В принципе проблема решена ,всем спасибо за советы.

bodja74А Вы запускаете АЦП в режиме Single Conversion Mode или Free Running ?
Если в Free Running, то Вы просто не вовремя меняеете ADMUX, его нельзя менять
в том же прерывании где считывали последний результат
В режиме Free Running новое преобразование начинается еще до того как Вы попали
в прерывание и если Вы в прерывании меняете ADMUX пока не прошло 1,5 ADC clock cycles
то следующий результат будет просто мусором
Если Вам нужно после каждого результата менять канал ADC и режим Free Running, то
тогда после считывания результата нужно подождать > 1,5 ADC clock cycles и до наступления
нового прерывания успеть сменить ADMUX
Удачи