Estoy usando Atmel AVR ATmega8 en mi proyecto de monitorización, que mide la tensión trifásica y envía los datos a través de un uart. Funciona muy bien en 1 o 2 días. Pero después de esa cantidad de tiempo, no está funcionando como se esperaba, y no hay respuesta viene de la uart y el latido del corazón LED, lo que indica uc está vivo o no. Y a veces el led de heartbeat parpadea y no hay respuesta del uart. Pero después de un reinicio de hardware, funciona de nuevo, luego se bloquea de nuevo hasta el reinicio de hardware. He implementado un watchdog en él, pero parece que no funciona. He reiniciado el contador del watchdog en la rutina de interrupción del temporizador de 8 bits. ¿Debo reiniciarlo en mi código principal, no en una rutina de interrupción?
Supongo que está saliendo de SRAM. La SRAM de ATmage8 es de 1 kb, y mis datos estáticos están usando el 71,2% de ella. Y no estoy usando ninguna asignación de heap. Mi pregunta es: ¿Es posible que la pila y los datos estáticos colisionen?