Está en la página 1de 4

Interrupciones externas

Las interrupciones externas son activadas por los pines INT1 y INT0. Si son habilitadas,
las interrupciones se activarn aun cuando los pines INT0/INT1 se configuren como
salidas.
Esta caracterstica proporciona una manera de generar una interrupcin por software.
Las interrupciones externas pueden ser activadas por un flanco de bajada, subida o por
un nivel bajo. Esto es establecido como se indica en la especificacin para el registro de
control MCU (MCUCR). Cuando la interrupcin externa se habilita y se configura como
activo por nivel, la interrupcin se activar mientras el pin se mantenga a nivel bajo.
Las interrupciones externas se establecen como se describe en la especificacin para el
registro de control MCU (MCUCR).

Tiempo de respuesta de interrupcin

La respuesta de ejecucin de interrupcin para todas las interrupciones de AVR


habilitadas es de cuatro ciclos de clock como mnimo. Cuatro ciclos de clock despus de
que el flag de interrupcin se ponga a set, se ejecuta la direccin del vector de programa
para la rutina de manejo de la interrupcin. Durante este 4 periodo de ciclo de clock, el
Contador de Programa (2 bytes) es introducido en la pila y el puntero de pila es
decrementado en 2. El vector es normalmente un salto relativo a la rutina de interrupcin
y este salto toma dos ciclos de clock. Si ocurre una interrupcin durante la ejecucin de
una instruccin multi-ciclo, antes de que la interrupcin sea servida, se completa esta
instruccin.
Un retorno de una rutina de manejo de interrupcin (el mismo que una rutina de llamada
a subrutina) toma cuatro ciclos de clock. Durante estos cuatro ciclos de clock, el
Contador de Programa (2 bytes) se extrae de la pila, el puntero de pila es incrementado
en 2 y el flag I en SREG est a set. Cuando el AVR termina una interrupcin, siempre
volver al programa principal y ejecutar una instruccin ms antes de que cualquier
interrupcin pendiente se sirva.
Observe que el registro de estado (SREG) no es manejado por el hardware del AVR,
para ninguna interrupcion ni subprograma. Para la rutina de manejo de interrupcin se
requiere un almacenamiento del SREG, esto debe ser realizado por el software del
usuario.
Para interrupciones activadas por eventos que pueden permanecer estticos, cuando el
evento ocurre, el flag de interrupcin est a set. Si el flag de interrupcin es borrado y la
condicin de interrupcin persiste, el flag no se pondr a set hasta que el evento ocurra

la prxima vez. Observe que una interrupcin de nivel externo slo se recordar
mientras que la condicin de interrupcin est activa.

Registro de control MCUMCUCR


El registro de control MCU contiene bits de control para las funciones de MCU
generales.
Bit
$35 ($55)
Read/Write
Initial Value

SRE

SRW

SE

SM

ISC11

ISC10

ISC01

ISC00

R/W
0

R/W
0

R/W
0

R/W
0

R/W
0

R/W
0

R/W
0

R/W
0

MCUCR

Bit 7 SRE: Habilitacin de SRAM externa


Cuando el bit SRE est a set (uno), la SRAM de datos externa est habilitada y las
funciones del pin AD0 - 7 (Puerto A), A8 - 15 (Puerto C), WR y RD (Puerto D) se
activan como las funciones de pin alternativas. Entonces el bit SRE anula cualquier
puesta de direccin de pin en los registros de direccin de datos respectivos. Vea la
"memoria de datos SRAM Interna y Externa" en el apartado de la Arquitectura para una
descripcin de las funciones de los pines de la SRAM externa. Cuando el bit SRE es
borrado (cero), la SRAM de datos externa est deshabilitada y se usan el pin y las
puestas de direccin de datos normales.
Bit 6 SRW: Estado de espera de la SRAM externa
Cuando el bit SRW est a set (uno), un estado de espera de un ciclo se inserta en el ciclo
de acceso de la SRAM de datos externa. Cuando el bit SRW es borrado (cero), el acceso
a la SRAM de datos externa se ejecuta con el esquema de tres ciclos normal.
Bit 5 SE: Habilitacin de descanso
El bit SE debe ponerse a set (uno) para hacer que los MCU entren en el Modo de
descanso cuando la instruccin SLEEP se ejecuta. Para evitar que el MCU entre en el
Modo de descanso, a menos que sea el propsito del programador, se recomienda poner
a set el bit de habilitacin de descanso (SE) justo antes de la ejecucin de la instruccin
SLEEP.
Bit 4 SM: Modo de descanso
Este bit selecciona entre los dos modos de descanso disponibles. Cuando SM es borrado
(cero), el modo Idle es seleccionado como Modo de descanso. Cuando SM est a set

(uno), el modo Power-down es seleccionado como Modo de descanso. Para ver ms


detalles, vaya a la seccin "Modos de descanso".
Bits 3, 2 ISC11, ISC10: Control de percepcin de la interrupcin 1, Bit 1 y Bit 0
La Interrupcin externa 1 es activada por el pin externo INT1 si el flag I de SREG y la
mscara de interrupcin correspondiente en GIMSK estn a set. El nivel y los flancos en
el pin externo INT1 que activan la interrupcin estn definidos en la siguiente tabla.

ISC11
0
0

ISC10
0
1

Descripcin
El nivel bajo en INT1 genera una peticin de interrupcin
Reservado
El flanco de bajada en INT1 genera una peticin de
interrupcin
El flanco de subida en INT1 genera una peticin de
interrupcin
Tabla. Control de percepcin de interrupcin 1

Bits 1, 0 ISC01, ISC00: Control de percepcin de la interrupcin 0, Bit 1 y Bit 0


La Interrupcin externa 0 es activada por el pin externo INT0 si el flag I de SREG y la
mscara de interrupcin correspondiente estn a set. El nivel y los flancos en el pin
externo INT0 que activan la interrupcin estn definidos en la siguiente tabla.

ISC01
0
0

ISC00
0
1

Descripcin
El nivel bajo en INT0 genera una peticin de interrupcin
Reservado
El flanco de bajada en INT0 genera una peticin de
interrupcin
El flanco de subida en INT0 genera una peticin de
interrupcin
Tabla. Control de percepcin de interrupcin 0

El valor en el pin INTn se comprueba antes de que se detecten flancos. Si se selecciona

la interrupcin por flanco, los pulsos con una duracin mayor que un periodo de clock
de la CPU generarn una interrupcin. Los pulsos mas cortos no garantizan que genere
una interrupcin. Si se selecciona la interrupcin por nivel bajo, este nivel bajo debe
mantenerse hasta la realizacin de la instruccin que actualmente se est ejecutando para
generar una interrupcin. Si est habilitada, una interrupccin activa por nivel generar
una demanda de interrupcin mientras el pin se mantenga a nivel bajo.

MODOS DE DESCANSO

Para entrar en los modos de descanso, el bit SE en MCUCR debe ponerse a set (uno) y debe
ejecutarse una intruccion de SLEEP. Si una interrupcin habilitada ocurre mientras el MCU
est en un modo de descanso, el MCU despierta, ejecuta la rutina de interrupcin y
continua la ejecucin de la instruccin siguiente a la de SLEEP. Los contenidos del archivo
de registro, SRAM y memoria de I/O estn inalteradas. Si ocurre un reset durante el Modo
de descanso, el MCU se despierta y ejecuta el vector de Reset.
Modo Idle
Cuando el bit SM es borrado (cero), la instruccin SLEEP fuerza al MCU al Modo Idle,
detiene la CPU pero permite que continuen funcionando los Timer/Contadores, Watchdog y
el sistema de interrupciones. Esto le permite al MCU que se despierte por las interrupciones
externas activadas as como por las internas como la interrupcin por desbordamiento del
Timer y Reset del Watchdog. Si no se requiere que se despierte por la interrupcin del
comparador analgico, el Comparador Analgico puede estar en modo Power Down
poniendo a set el bit ACD del control del comparador Analgico y registro de estado
(ACSR). Esto reducir el consumo de energa en Modo Idle. Cuando el MCU se despierta
del Modo Idle, la CPU empieza la ejecucin del programa inmediatamente.
Modo de Power Down
Cuando el bit SM est a set (uno), la instruccin SLEEP fuerza al MCU al modo de Power
down. En este modo, el oscilador externo se detiene, mientras las interrupciones externas y
el Watchdog (si est habilitado) continan operando. Slo un Reset externo, un Reset del
Watchdog (si est habilitado) o una interrupcin de nivel externa en INT0 o INT1 pueden
despertar el MCU.
Observe que cuando una interrupcin activa por nivel se usa para despertar del modo Power
Down, el nivel bajo debe mantenerse durante un tiempo ms largo que el periodo Time-out
de retraso del Reset tTOUT. De otro modo, el MCU no se despertar.

También podría gustarte