Está en la página 1de 9

INTERRUPCIONES EN LOS

MICROCONTROLADORES PIC
Una interrupcin es un evento que obliga a un sistema procesador a
desatender por un momento la accin que se encuentre ejecutando
dentro del desarrollo normal de un programa y llamar a una subrutina,
la cual usualmente se denomina rutina o servicio de interrupcin.
Cuando aparece una interrupcin, el procesador guarda en la pila
(stack) la direccin de la instruccin en donde se encontraba y el con-
trol del programa se dirige hacia la direccin donde se encuentra la
rutina de interrupcin. Cuando sta termina, recupera la direccin de la
pila y vuelve al lugar exacto donde abandon el programa.
En el mapa de memoria de programa de los micro controladores PIC
existe una direccin asignada (0004H) para ubicar la rutina. Cuando se
origina un estado de reset (o estado de volver a inicializar el sistema), el
Contador de Programa dirige la CPU a la direccin 000H ; un programa
que incluya interrupciones generalmente se estructura de la siguiente
forma:
Los micro controladores que solo cuenten con una interrupcin de
mdulo perifrico (por ejemplo el 16F84), han reemplazado el bit 2
(PEIE) por otros como el EEIE o el ADIE, que corresponden a
interrupciones como la de la EEPROM de datos.
Cada una de las interrupciones puede usarse sola o se pueden habilitar
varias, dependiendo de la aplicacin. En cualquier punto del programa,
el usuario puede desactivar alguna de estas interrupciones borrando el
bit correspondiente:
BCF INTCON, INTE; int. externa
BCF INTCON, RBIE; int. en RB
BCF INTCON, TOIE; int. por el TMRO
Cuando ocurre un estado de reset todos estos bits toman un valor de
cero (limpiados).Para habilitar cualquier interrupcin, es necesario
activar un bit (GIE) que se denomina el habilitador general o global.
Es decir, las interrupciones se habilitan si se escribe BSF INTCON,GIE o
se deshabilitan si se escribe BCF INTCON,GIE.
Interrupcin externa
La interrupcin externa se genera cuando llega una seal externa al pin
INT. El bit 6 del registro OPCION determina si esta interrupcin la
generar un flanco de subida o un flanco de bajada. Cuando aparece un
flanco adecuado en el pin INT, la bandera INTF [bit 4 del registro
INTCON) se habilita. Esa bandera debe desactivarse mediante un
cdigo en el programa dentro de la rutina de interrupcin, antes de
habilitar de nuevo esa interrupcin.
Estos registros no mantienen una ubicacin estndar para cada uno de
sus bits. Cada tipo de micro controlador posee algunas variaciones
sobre la ubicacin de ellos dentro del registro.
Existe un trmino conocido como latencia de la interrupcin, que se
define como el tiempo que transcurre desde que apareci la
interrupcin (la bandera se ha puesto en uno) hasta el momento en que
la instruccin ubicada en la posicin 0004H empieza a ejecutarse, este
tiempo es de 3 TCY (ciclos de instruccin) para interrupciones
sincrnicas (como por ejemplo las provenientes de un temporizador).
En esta figura podemos observar el proceso que ocurre desde que se
presenta una interrupcin:
Ejemplo de interrupcin externa

También podría gustarte