Я вообще то думал, что контроллер с частотой нужно прописывать и в шапке программы и в командной строке,
Я тоже думал в командной строке надо обязательно, однако проверка показала идентичность результата. Возможно в других вариантах разница обнаружится ...
в режиме Free Runing обеспечивается постоянная частота дискретизации, или она может "плавать"?
Ну если прерывания успевают обрабатываться, то стабильность частоты выборки АЦП идентична стабильности источника тактового сигнала (задержки в единицы нс игнорирую, уж такая точность для АЦП в AVR недостижима).
Если не успевают -
в режиме Free Running будут пропущенные результаты измерений, никак не обнаружимые по битам состояния, частота преобразований АЦП при этом не сбивается.
В остальных режимах - собьётся, потому что при установленном ADIF новое преобразование просто не запустится:
Цитата:
However, the Interrupt Flag must be cleared in order to trigger a new conversion at the next interrupt event.
(это в древней mega8 нет других режимов, а в более новых процессорах (например ATmega168/328 в ардуино) есть куча вариантов запуска АЦП, по таймерам, по компаратору, по внешнему пину - биты ADTS).
ADIF сбрасывается при вызове прерывания ADC или руками если прерывание не используется.