Цитата(KIG @ Jan 21 2014, 12:44)

Однако, в связи с тем, что переход в функцию обработки прерывания занимает достаточно длительное время (примерно 1,7 мкс при тактовой частоте 29,4912 МГц и частоте дискретизации АЦП 1,08 МГц, т.е. 1 мкс)
Что у вас за обработчик такой? Что вы в нём делаете? Вызываете функции из других файлов? Почему вход такой долгий? Приведите код.
Цитата(KIG @ Jan 21 2014, 12:44)

пришлось отказаться от прерываний.В замен контролирую флаг СН0IF. Если он установлен преобразование завершено, можно сбрасывать флаг и считывать значение регистра результата АЦП.
СН0IF - это флаг статуса АЦП. Так ведь? От ДМА отказались? ДМА само результат должно прочитать и флаг СН0IF сбросить. Или вы что -то другое придумали?
Цитата(KIG @ Jan 21 2014, 12:44)

При этом DMA стал работать следующим образом (наблюдаю по отладчику в AVR Studio 5): запускается раньше, чем устанавливается флаг СH0IF (при этом значение регистра результата преобразования АЦП заполняется значением раньше, чем устанавливается флаг CH0IF)
Что-то странное...Код приведите...
Цитата(KIG @ Jan 21 2014, 12:44)

Подскажите, пожалуйста, где я ошибся? Заранее спасибо.
Код проверки состояния флага следующий:
Код
asm("loopInt1:");
asm("wdr");
asm("LDS r18,0x0240");//ADCB.CTRLA - Bit 1 - Enable ADCB
Нужен ли ассемблер тут? Вопрос...
Вы не пробовали использовать ДМА в ping-ping режиме(DMA_DBUFMODE_CH01_gc или DMA_DBUFMODE_CH23_gc и тп)? Если каналы есть, то попробуйте.