Atmel ATmega164P/V Manual De Usuario página 17

Microcontrolador avr de 8 bits de alto rendimiento y bajo consumo.
Tabla de contenido

Publicidad

de Estado no es almacenado automáticamente cuando entra una rutina de
interrupción o cuando regresa de la rutina de interrupción. Esto deber ser hecho
manualmente por software. Cuando usa la instrucción CLI para deshabilitar
interrupciones, la interrupción será deshabilitada inmediatamente. Ninguna
interrupción será ejecutada después de la interrupción CLI, Incluso si ocurre
simultáneamente con la instrucción CLI. Los siguientes ejemplos muestran
como esto puede ser usado para evitar interrupciones durante el tiempo de
escritura en la EEPROM.
Ejemplo del Código en Lenguaje Ensamblador
In r16, SREG; almacena el valor en SREG
cli; deshabilita interrupciones durante la secuencia de tiempos
sbi EECR, EEMPE; Comienza la escritura en la EEPROM
sbi EECR, EEPE
Out SREG, r16; almacena el valor del I-bit en el SREG
Ejemplo del Código en C
char cSREG;
cSREG = SREG; almacena el valor en SREG */
/* Deshabilita interrupciones durante la secuencia de tiempos */
__disable_interrupt();
EECR |= (1<<EEMPE); /* Comienza la escritura en la EEPROM */
EECR |= (1<<EEPE);
SREG = cSREG; /* almacena el valor del I-bit en el SREG */
Cuando usa la instrucción SEI para habilitar interrupciones, la siguiente
instrucción SEI será ejecutada antes de cualquier interrupción pendiente, como
muestra el siguiente ejemplo.
Ejemplo del Código en Lenguaje Ensamblador
sei; Habilita la configuración de interrupciones globales
Sleep; ingresa a descansar, espera por la interrupción
; note: ingresa a descansar antes de cualquier pedido de interrupción
__enable_interrupt(); /* Habilita la configuración de interrupciones globales */
__sleep(); /* ingresa a descansar, espera por la interrupción */
/* Note: ingresa a descansar antes de cualquier pedido de interrupción */
6.7.1 Tiempo de respuesta de la Interrupción
La respuesta para la ejecución de interrupción para habilitar todas las
interrupciones del AVR son mínimos cinco ciclos.
Después de cinco ciclos de reloj la dirección del vector de programa para la
rutina manual de interrupción es ejecutada.

Publicidad

Tabla de contenido
loading

Este manual también es adecuado para:

Atmega324p/vAtmega644p/v

Tabla de contenido