Interrupciones

Interrupciones

La interrupción es una señal recibida por las CPU para detener la ejecución del programa principal y pasar a ejecutar un código específico que permite tratar la situación causante (Rutina de Tratamiento de Interrupción. RTI).Por lo tanto, las interrupciones se constituyen como un mecanismo fundamental para comunicar de forma rápida y asíncrona la CPU con el mundo exterior

En los microcontroladores de la familia MSP430 existen los siguientes tipos de interrupciones:

  • Reset de Sistema.
  • Interrupciones No enmascarables.
  • Interrupciones (No) enmascarables.
  • Interrupciones enmascarables.

Debes conocer:Conceptos relacionados con las interrupciones

Las siguientes definiciones:

EVENTO (o fuente de interrupción): Cualquier cambio en las entradas, salidas o periféricos internos del microcontrolador, cuya ocurrencia sea interesante detectar. Normalmente se implementa como un cambio automático en un bit de un registro. Este tipo de bits reciben el nombre de flags de interrupción.

En base a la definición anterior se pueden detectar los siguientes tipos de eventos:

  • Internos: generados por los propios recursos del microcontrolador (watchdog, temporizadores, fallo en los osciladores externos, cortes en la alimentación…).
  • Externos: generados por acciones determinadas sobre los periféricos E/S (cambios en los pines de los puertos E/S, datos recibidos por los periféricos de comunicaciones, generación de un reset externo…).

INTERRUPCIÓN: Mecanismo que, cuando está habilitado, permite interrumpir la ejecución normal que en ese momento está realizando la CPU, y que se puede asociar a la ocurrencia de un evento, para ejecutar un código que trate dicho evento.

ACTIVACIÓN: cuando se detecta la ocurrencia de un evento asociado a una interrupción se activa su correspondiente flag de interrupción, indicando que el evento se ha producido. 

HABILITACIÓN DE UNA INTERRUPCIÓN (o “interrupt enable”):  En determinadas ocasiones puede interesar que no se produzca la interrupción que está asociada al evento que se ha producido. Por este motivo, el mecanismo de interrupción permite o no su habilitación. Normalmente, la habilitación de una interrupción se realiza poniendo a “1” un bit de un registro, mientras que con un ”0” la interrupción asociada a ese evento no estará permitida. Este tipo de bits reciben el nombre de bits de habilitación de interrupción.

PRIORIDAD: cada interrupción posee una prioridad, y en el caso de que existan varias interrupciones pendientes siempre se atiende en primer lugar la de mayor prioridad, quedando el resto de interrupciones pendientes para ser atendidas cuando finalice la más prioritaria.

Los flags de interrupción y los bits de habilitación se pueden localizar en los registros especiales de la CPU, en el registro de estado SR (bit GIE) y en los propios registros de configuración de los periférico.

 

 

Ejemplo de Flag de interrupción en un registro de control del TA
Ejemplo de Bit de habilitación en un registro de control del TA

 

 

Obra publicada con Licencia Creative Commons Reconocimiento 2.5