Fuse CKDIV8 + WDR = проблема. Принесли тут платку с занятной
ситуацией: Atmega1281-16AU с кристаллом 14.7456 Mhz на 3.3V. Т.к.
по даташиту для 3.3 частота <= 8Mhz, то ее просто поделили на
2 через CLKPR – Clock Prescale Register и для надежности включили
фуз CKDIV8 - чип стартует на 14.7456 / 8 = 1.8432, а затем
переключается на 7.3756. При этом отвалился ватчдог, остальное
работает. Выключение CKDIV8 возвращает ватчдог. Порядок
инициализации:
void main(void)
{
__disable_interrupt();
__watchdog_reset();
WDTCSR = (1 << WDCE)| (1 << WDE );
WDTCSR = (1 << WDE )| (1 << WDP3); // Цикл 4 с (Vcc +5В)
__delay_cycles(50);
CLKPR = (1 << CLKPCE); // Разрешаем изменение делителя частоты
CLKPR = (1 << CLKPS0); // DIV / 2