Estoy trabajando en un programa de prueba en un ATmega164A que activa y desactiva un relé de 12V (sin carga) a través de un ULN2003A. Para mi programa de prueba, estoy alternando el relé a 100 ms. Tengo un diodo IN4001 a través de la bobina. Además, tengo una pantalla LCD que muestra un contador de milisegundos, que se incrementa en una interrupción. En la operación normal, continúa por siempre sin ningún problema. Noté que uno de mis zócalos de relé era defectuoso, por lo que a veces necesito jugar con el relé en el zócalo para que vuelva a funcionar. Cuando hice esto, noté que a veces el bucle principal se bloqueaba y conseguía algo de basura en la pantalla LCD. Si jugueteara con el relé un poco más (y específicamente los contactos de la bobina en el zócalo), el bucle principal se reanudaría, pero el valor del contador sería correcto, lo que indica que el bucle principal se detendría pero las interrupciones continuarán.
Principalmente arreglé la basura en la pantalla LCD colocando una tapa de 0.1uF justo en los pines de alimentación, pero el circuito principal aún se bloqueará si hago lo que mencioné anteriormente. Sé que esta es una situación un poco rara y nunca debería suceder, pero solo estoy tratando de entenderlo. Creo que si el bucle principal se interrumpe de alguna manera, seguramente las interrupciones no funcionarán correctamente.