Estoy manteniendo y desarrollando software en C para microcontroladores S12X. El ISR para cada interrupción (como I2C, temporizador, etc.) es muy largo, como de 20 a 30 líneas con varios cálculos dentro del ISR para varias interrupciones.
Por lo que he leído, el ISR debe ser lo más corto posible. Estoy en lo correcto en esto? En este momento me enfrento a varios problemas relacionados, como el reinicio del controlador en momentos aleatorios. Todavía estoy descubriendo la razón.
Ahora mi pregunta principal es ¿qué procedimiento básico debo seguir para probar interrupciones? Quiero hacer una prueba controlada, como cuando envío una interrupción, luego, cuando se está ejecutando, quiero enviar otra interrupción y ver si se está ejecutando correctamente, y otros factores importantes. El código también está en una etapa avanzada; ¿Debo arriesgarme a modificar completamente las interrupciones?
Una sugerencia que quiero específicamente es en caso de que no vaya a realizar una modificación completa de los ISR, ya sea seguro deshabilitar las interrupciones tan pronto como ingrese un ISR, y habilitar las interrupciones al salir de todas las interrupciones.