1.Проверьте сперва цифровым вольтметром напряжения на ножках контроллера, чтоб убедиться, что аналоговая часть работает корректно.
2. Попробуйте сэмплировать каждый канал по 3-4 раза, может результаты такого теста дадут доп. информацию к размышлениям.
3. Я бы попробовал вставить задержку после переключения канала и началом сэмплирования. И "поигрался" с ней, наблюдая результат.
Например, так:
CODE
//set ADC channel
ADMUX=(ADMUX&0xF0)|adc_ch;
//delay
_delay_us(100);
//Start conversionio with Interupt after conversion
ADCSRA |= (1<<ADSC)|(1<<ADIE);
PS: Лично я с такой проблемкой не сталкивался, правда я ни разу не использовал мультиплексор, мне нужен был только один канал.
Сообщение отредактировал nk@ - Apr 9 2011, 08:31