¿Cuáles son las ventajas o desventajas de utilizar una interrupción interna en lugar de una interrupción externa en MCU?

1

en mi proyecto parece que debo usar una interrupción interna en lugar de una externa porque mi MCU se queda sin el pin externo de interrupción. Aquí hay un ejemplo de interrupción interna I ' He encontrado aquí.

Estoy bastante interesado en saber qué tipo de efectos secundarios traerá la interrupción interna a todo el sistema, ¿hay alguna ventaja o desventaja?

Saludos cordiales.

    
pregunta Yank

2 respuestas

1

Eso depende de muchos factores.

Las interrupciones internas generalmente son interrupciones con temporizador, por lo tanto, si desea realizar un seguimiento del tiempo, usar interrupciones internas es una buena idea.

Simplemente no confíe demasiado en ellos, el RTC suele hacer mejor el seguimiento del tiempo durante períodos prolongados (es decir, más de un día).

Las interrupciones externas son buenas para tratar con rapidez los eventos mundiales externos. Como nuevos datos en el puerto serie, un sensor que se activa / desactiva, cambio de voltaje en su ADC, etc. ...

De hecho, si tiene que responder a los eventos (y lo hará), la pregunta que debe hacer no es si debe usar interrupciones internas o externas, sino si debe usar una interrupción para lidiar con ese evento, o Si solo sondear el puerto con su máquina de estado (y debería estar usando uno para tratar las tareas simultáneas en un entorno integrado), podrá hacerlo.

Hay situaciones, por supuesto, cuando usar interrupciones externas es la única opción. Si está en modo de suspensión profunda, el microcontrolador apagará todos los temporizadores, todo el hardware "sin acceso" e incluso la memoria RAM (se borrarán todos sus datos) y ejecutará la CPU en el reloj más lento disponible. La única forma de activar el microcontrolador en la mayoría de los modelos mediante interrupciones externas.

    
respondido por el Luiz Menezes
4

Una interrupción externa utilizará alguna fuente externa (fuera del microcontrolador), como un interruptor, un sensor de movimiento o una fuente similar, para activar la interrupción.

Una interrupción interna es activada por alguna fuente dentro del microcontrolador, como un desbordamiento del temporizador, datos ADC listos, datos UART listos, etc.

Las interrupciones internas y externas no son intercambiables, tiene que usar la que activará su fuente de interrupción.

Editar:

Debería haber mencionado que lo que haces en las rutinas de servicio de interrupción tendrá un impacto mucho mayor en el rendimiento del sistema que si utilizas interrupciones internas o externas, ya que el programa principal se pausará mientras se ejecuta la rutina de servicio de interrupción.

    
respondido por el Peter Bennett

Lea otras preguntas en las etiquetas