Sei sulla pagina 1di 11

El Manejo de las

Interrupciones

El Manejo de las Interrupciones


Una interrupcin es un evento que es identificado por el
microcontrolador, y que interrumpe el proceso normal de un
programa.
Cuando finaliza la atencin de la interrupcin se continua en el
punto donde se haba interrumpido el programa.
Los eventos o fuentes de interrupcin son muchos y muy variados:
Interrupcin externa por flanco, por cambio de estado, por fin de
temporizacin

El Manejo de las Interrupciones


Los microcontroladores PIC incluyen un sistema de interrupciones
basado en dos niveles de prioridad.
Una interrupcin de alta prioridad puede interrumpir el tratamiento
de una de baja prioridad pero no a la inversa.
Por compatibilidad, el sistema de interrupciones con prioridades
est desactivado por defecto de forma que se trabaja sin
prioridades.
El bit IPEN del registro RCON habilita (1) o no (0) el sistema de
prioridades de los PIC18.

Tipos de Interrupciones
Interrupciones hardware: Estas son asncronas a la ejecucin del
procesador, es decir, se pueden producir en cualquier momento
independientemente de lo que est haciendo la CPU en ese
momento. Las causas que lo producen son externas al procesador y
a menudo suelen estar ligadas con distintos dispositivos de E/S.
Traps : Son aquellas que se producen de forma sncrona a la
ejecucin del procesador y por tanto podran predecirse si se
analiza con detenimiento la traza del programa que en ese
momento estaba siendo ejecutado en la CPU. Normalmente las
causas de estas interrupciones suelen ser realizaciones de
operaciones no permitidas tales como la divisin por 0, el
desbordamiento, el acceso a una posicin de memoria no
permitida, etc.

Tipos de Interrupciones
Interrupciones software o excepciones: A menudo se tiende a
confundir las interrupciones software y las trampas, ya que su
naturaleza es bastante similar. Sin embargo las excepciones se
producen al realizar una operacin no permitida por lo que de
algn modo podemos decir que no es controlada directamente por
el programador sino que, por un fallo al programar, se producen. No
obstante las trampas s que son provocadas por el programador.
Para provocar una trampa existen distintas instrucciones en el
cdigo mquina que permiten al programador producir una
interrupcin al ejecutar dicha instruccin. Suelen tener
nemotcnicos tales como INT. Suelen ser de vital importancia ya
que a partir de las trampas se pueden pedir al SO que realice
determinadas funciones, para ello, en DOS se realiza la instruccin
INT 0x21 y en Unix se utiliza INT 0x80.

Tipos de Interrupciones
El Pic 16F628 (y el 16F628A) tiene 10 fuentes de interrupcin.

Interrupcin externa RB0/INT


Interrupcin por cambio lgico en el puerto B (pines RB7 a RB4)
Interrupcin por desborde del timer 0 (TMR0)
Interrupcin por desborde del timer 1 (TMR1)
Interrupcin por comparacin exitosa en TMR2
Interrupcin del comparador
Interrupcin del transmisor del USART
Interrupcin del receptor del USART
Interrupcin del mdulo CCP
Interrupcin del EEPROM

Tipos de Interrupciones
Hay dos tipos de interrupciones de E/S diferentes en los PIC18:

3 interrupciones externas independientes (INT0 con la lnea RB0,


INT1/RB1 e INT2/RB2).
Se produce al detectar un flanco, ascendente o descendente,
configurable por medio del bit INTEDGx.
Se puede utilizar para el control de interruptores, pulsadores o
cualquier dispositivo que genere un seal digital.
La interrupcin INT0 no dispone del bit de prioridad, y se considera
siempre como de prioridad alta.
Interrupcin por cambio de estado en <RB4:RB7>.
Se produce cuando cambia el estado (pasar de 0 a 1 o de 1 a
0) de cualquiera de las 4 lneas.
Se utiliza principalmente para el control de teclados matriciales.

Tipos de Interrupciones
Hay dos tipos de interrupciones de E/S diferentes en los PIC18:

3 interrupciones externas independientes (INT0 con la lnea RB0,


INT1/RB1 e INT2/RB2).
Se produce al detectar un flanco, ascendente o descendente,
configurable por medio del bit INTEDGx.
Se puede utilizar para el control de interruptores, pulsadores o
cualquier dispositivo que genere un seal digital.
La interrupcin INT0 no dispone del bit de prioridad, y se considera
siempre como de prioridad alta.
Interrupcin por cambio de estado en <RB4:RB7>.

Se produce cuando cambia el estado (pasar de 0 a 1 o de 1 a


0) de cualquiera de las 4 lneas.
Se utiliza principalmente para el control de teclados matriciales.

Vectores de Interrupcin
Un vector de interrupcin es un numero de 4 bytes almacenado en
el 1er. 1K Byte de la memoria (00000H 003FFH) el cual define la
tabla de vectores de interrupcin, con un total de 256
interrupciones.
Cada vector contiene la direccin de un procedimiento ISR. Los
primeros dos Bytes contienen la IP y los dos ltimos contienen a CS
donde se encuentra el cdigo a ejecutar debido a la interrupcin

Vectores de Interrupcin

Vectores de Interrupcin

Potrebbero piacerti anche