Если вы используете вачдог, убедитесь в правильной инициализации. Пример на 2 секунды.
Код
void Watchdog_Init(void)
{
__watchdog_reset();
WDTCSR = (1<<WDCE)|(1<<WDE);
WDTCSR = (1<<WDP0)|(1<<WDP1)|(1<<WDP2)|(1<<WDE);
}
Если не используете вообще, значит что-то одно - или фуз постоянного включения вачдога включили или стек проседает.