Este documento describe las interrupciones en el microcontrolador ATmega164P. Explica que las interrupciones desvían la ejecución del programa principal hacia rutinas de servicio. Detalla las 3 interrupciones externas y 4 interrupciones por cambios en los puertos, así como cómo habilitarlas y cómo identifican el evento que causó la interrupción.
Anuncio de Remitido Colegio SEK a la comunidad pública
17 Interrupciones
1. INTERRUPCIONES DE LOS
ATmega164P:
VECTORES, REGISTROS Y
BANDERAS
Elaborado por: Ing. Jaime E. Velarde
2. INTERRUPCIÓN
LAS INTERRUPCIONES SON EVENTOS
QUE SE PRODUCEN FUERA DE LA
EJECUCIÓN DEL PROGRAMA,
INCLUSIVE PUEDEN SER EXTERNAS
AL CIRCUITO INTEGRADO, QUE
OBLIGAN AL MICROCONTROLADOR A
CONTINUAR CON OTRA SECUENCIA
DE INSTRUCCIONES QUE SE
DENOMINADA LA RUTINA DE
SERVICIO A LA INTERRUPCIÓN
3. RETORNO DE
INTERRUPCIÓN
LA ÚLTIMA INSTRUCCIÓN QUE SE
DEBE EJECUTAR EN UNA RUTINA DE
SERVICIO: ES LA DE RETORNO DE
INTERRUPCIÓN
LA FORMA DE TRABAJAR SE PARECE
AL USO DE SUBRUTINAS, PERO SIN
LA PRESENCIA DE LA INSTRUCCIÓN
DE LLAMADA
4. COMPARACIÓN CON SUBRUTINAS
PROGRAMA CON SUBRUTINAS PROGRAMA CON INTERRUPCIONES
1, 2 y 3 son las ejecuciones de las 1, 2 y 3 son eventos que producen
instrucciones RCALL interrupciones
5. IDENTIFICACIÓN DE LOS
EVENTOS
EL MICROCONTROLADOR IDENTIFICA
AL EVENTO QUE SE HA PRODUCIDO
CUANDO SE ENCIENDE LA BANDERA
ASOCIADA
LA EJECUCIÓN SE ENCAMINA A LA
RUTINA DE SERVICIO, SI ESTÁ
HABILITADA LA INTERRUPCIÓN Y SI
EL BIT I DEL SREG ESTÁ EN UNO
(BANDERA DE HABILITACIÓN GLOBAL
DE LAS INTERRUPCIONES)
6. UBICACIÓN DE LAS RUTINAS
LAS RUTINAS EMPIEZAN EN LAS
PRIMERAS LOCALIDADES PARES DE
LA MEMORIA FLASH, DENOMINADOS
VECTORES DE LA INTERRUPCIÓN
COMO SON ÚNICAMENTE DOS
LOCALIDADES PARA LA RUTINA, SE
PUEDEN CONTINUAR EN CUALQUIER
PARTE DE LA MEMORIA MEDIANTE
UN SALTO EN EL VECTOR
8. INTERRUPCIONES POR
SEÑALES EXTERNAS
Además del RESET existen tres
interrupciones externas y cuatro
interrupciones por cambio de estado
en los Pórticos de E/S
9. INTERRUPCIONES
EXTERNAS
LOS ATMEGA 164P TIENEN TRES
INTERRUPCIONES EXTERNAS
INT0 TERMINAL PD2
INT1 TERMINAL PD3
INT2 TERMINAL PB2
POR ESTOS TERMINALES, QUE SE LOS
CONFIGURA COMO ENTRADAS, SE
INGRESAN LAS SEÑALES QUE
PRODUCEN INTERRUPCIONES
10. MODOS DE OPERACIÓN DE LAS
INTERRUPCIONES EXTERNAS
ISCn1 ISCn0 DESCRIPCIÓN
El nivel lógico 0 en la entrada INTn
0 0
genera un pedido de interrupción
Cualquier cambio en la entrada INTn
0 1
genera un pedido de interrupción
La transición de bajada en la entrada
1 0
INTn genera un pedido de interrupción
La transición de subida en la entrada
1 1
INTn genera un pedido de interrupción
11. HABILITACIÓN DE LAS
INTERRUPCIONES EXTERNAS
LOS BITS INT0, INT1 e INT2 EN 1 HABILITAN
LOS PEDIDOS INDIVIDUALES DE
INTERRUPCIÓN, CAUSADOS POR LA
ACTIVIDAD EN LA RESPECTIVA ENTRADA
DE LA SEÑAL
PARA QUE SURTAN EFECTO ESTOS
PEDIDOS TAMBIÉN DEBE ESTAR EN 1 LA
BANDERA GENERAL DE HABILITACIÓN DE
INTERRUPCIONES
12. BANDERAS DE LAS
INTERRUPCIONES EXTERNAS
INTF0, INTF1 e INTF2 SE PONEN EN 1
POR EFECTO DE LA ACTIVIDAD DE LA
ENTRADA DE LA SEÑAL RESPECTIVA
REGRESAN A 0 CUANDO SE EJECUTA
LA RUTINA DE INTERRUPCIÓN O
CUANDO SE ESCRIBE UN 1 LÓGICO
13. INTERRUPCIONES POR
CAMBIOS EN LOS PÓRTICOS
LOS ATMEGA 164P TIENEN CUATRO
INTERRUPCIONES PARA LOS
CAMBIOS EN LOS PÓRTICOS
PCINT0 PARA EL PÓRTICO A
PCINT1 PARA EL PÓRTICO B
PCINT2 PARA EL PÓRTICO C
PCINT3 PARA EL PÓRTICO D
QUE TAMBIÉN SE LOS CONFIGURA
COMO ENTRADAS
14. HABILITACIÓN DE LAS
INTERRUPCIONES POR CAMBIO
LOS BITS PCIE0, PCIE1, PCIE2 y PCIE3 EN 1
HABILITAN LOS PEDIDOS DE
INTERRUPCIÓN, CAUSADOS POR LOS
CAMBIOS EN LAS ENTRADAS DE LOS
PÓRTICOS A, B, C y D RESPECTIVAMENTE
PARA QUE SURTAN EFECTO ESTOS
PEDIDOS TAMBIÉN DEBE ESTAR EN 1 LA
BANDERA GENERAL DE HABILITACIÓN DE
INTERRUPCIONES
15. BANDERAS DE LAS
INTERRUPCIONES POR CAMBIO
PCIF0, PCIF1, PCIF2 y PCIF3 SE PONEN EN 1
POR EFECTO DE CAMBIOS PRODUCIDOS
EN LAS ENTRADAS DE LOS PÓRTICOS A, B,
C y D RESPECTIVAMENTE
REGRESAN A 0 CUANDO SE EJECUTA LA
RUTINA DE INTERRUPCIÓN O CUANDO SE
ESCRIBE UN 1 LÓGICO
16. IDENTIFICACIÓN DE LAS
ENTRADAS
LA DENOMINACIÓN QUE TIENE CADA
UNO DE LOS TERMINALES DE LOS
PÓRTICOS COMO INTERRUPCIONES
ES:
PCINT7..0 PARA LOS DEL PÓRTICO A
PCINT15..8 PARA LOS DEL PÓRTICO B
PCINT23..16 PARA LOS DEL PÓRTICO C
PCINT31..24 PARA LOS DEL PÓRTICO D
17. MASCARA DE LAS
INTERRUPCIONES POR CAMBIO
LOS BITS PCINT7..0, PCINT15..8,
PCINT23..16 y PCINT31..24 EN 1
HABILITAN INDIVIDUALMENTE LAS
ENTRADAS DE LOS PÓRTICOS A, B, C
y D RESPECTIVAMENTE PARA QUE
LOS CAMBIOS GENEREN PEDIDOS DE
INTERRUPCIÓN