Цитата(Сергей Борщ @ Jun 29 2017, 23:57)

Вы объявили в заголовочном файле переменную безымянного типа.
Но у
union есть имя.
Цитата(Сергей Борщ @ Jun 29 2017, 23:57)

Полагаю, adc_16_old.h был включен более чем в один файл исходников, а adc_union.h вы включили только в один.
Файл всего лишь один. Есть основная программа к которой подключен хидер. Больше его нигде нет. Я всего лишь разделил один хидер на два и последовательно их подключил, чтоб заработало. В другом проекте с ATMega128 объявление
union в общем хидерном файле прекрасно работает. Вот поэтому я и не понимаю, в чем разница. Я просто скопировал с этого проекта и поменял ATMega128 на ATMega16.