Цитата(oleg1ma @ 7.3.2012, 15:50)

Все работало только мигало, интервал приблизительно секунда.
Рекомендую проверить осциллографом поведение и пульсации напряжения питания микроконтроллера. Похоже там есть проблема, если при изменении фьюза BODLEVEL что-то изменилось. Значение этого фьюза определяет напряжения питания, при котором происходит принудительный сброс (RESET) контроллера.
Кстати как указано в примечании 2 к таблице 15 даташита:
"The test is performed using BODLEVEL = 1 for ATmega16L and BODLEVEL = 0 for ATmega16.
BODLEVEL = 1 is not applicable for ATmega16."
Это означает следующее
"Тест произведен с использованием BODLEVEL = 1 для ATmega16L и BODLEVEL = 0 для ATmega16.
BODLEVEL = 1 неприменим для ATmega16."
Дела в том, что ATmega16L может работать в расширенном диапазоне изменения напряжения питания от 2.7 до 5.5 вольт. В то время как ATmega16 - от 4.5 до 5.5 вольт. Правда ATmega16 может работать с тактовой частотой от 0 до 16 мгц, в то время как ATmega16L от 0 до 8 мгц.
В данном случае используется внутренний генератор на 8 мгц. Так что могут использоваться любые контроллеры ATmega16 и ATmega16L. Причем ATmega16L - предпочтительнее, т.к. они меньше подвержены помехам при снижении напряжения питания.
Еще один комментарий хочу дать по поводу установки фьюзов.
В примечании к таблице 2 даташита указано:
"For all fuses ”1” means unprogrammed while ”0” means programmed."
Это означает общее правило для всех фьюзов микроконтроллера:
"Для всех фьюзов установка в "1" означает "непрограммированый" в то время ка установка в "0"
означает программирование соответствующего фьюза. Отсюда исторически появилась ошибка у многих пользователей. В PonyProg установка галочки означает программирование соответствующего фьюза, т.е. установка его в "0".
Конечно все эти рекомендации справедливы для всех типов контроллеров ATMega, включая ATMega8.