К регистру MCUSR я вообще не обращаюсь.
Листинг функции main:
448 // Инициализация Watchdog-таймера
449 _WDR(); // Сброс Watchdog
\ 000002A8 95A8 WDR
450 WDTCSR = (1<<WDCE)|(1<<WDE);
\ 000002AA E108 LDI R16, 24
\ 000002AC 9300.... STS _A_WDTCSR, R16
451 // WDTCSR = (1<<WDE)|(1<<WDP3); // Установка времени срабатывания ~4 с
452 WDTCSR = (1<<WDE)|(1<<WDP2)|(1<<WDP1)|(1<<WDP0); // Установка времени срабатывания ~2 с
\ 000002B0 E00F LDI R16, 15
\ 000002B2 9300.... STS _A_WDTCSR, R16
453 _SEI(); // Глобальное разрешение прерывания
\ 000002B6 9478 SEI
Сам файл листинга = 1,2Мб загружаться не хочет.
Цитата(Палыч @ Jun 19 2013, 16:48)

А, если убрать глобальное разрешение прерываний ?
Тогда ничего работать не будет: В проге задействовано 4 USARTa, SPI, 2T/C.
А, вцелом, я вначале описал, что если отключить WDT, то всё прекрасно работает.
Ещё одна подозрительная тонкость: после зависа проги по WDT и дальнейшей перепрошивки проги заново - завис не прекращается, нужно обязательно передёрнуть питание. После этого прога начинает работать (до следующего срабатывания WDT).