Registro de Estado y Control en los AVRs
Clasificado en Electrónica
Escrito el en español con un tamaño de 4,66 KB
Registro de Estado (SREG: 0x3F)
I : Habilitador global de Interrupciones, con un 1 lógico, las interrupciones son habilitadas.
T: Para respaldo de un bit, es usado con la instrucción BLD para Carga y BST para Almacenamiento.
H: Bandera de acarreo de los 4 bits inferiores (Half)
S: Bit de signo (Mantiene una XOR entre N y V)
V: Bandera de Sobreflujo, en operaciones de complemento a dos.
N: Bandera de Negativo
Z: Bandera de Cero
C: Bandera de Acarreo
Bits del registro de CONTROL :
EERIE: EEPROM Ready Interrupt Enable En alto habilita la interrupción por EEPROM. La EEPROM genera una interrupción cuando EEWE/EEPE es limpiado.
EEMPE : EEPROM Master Write Enable Determina si la puesta en alto de EEPE producirá una escritura en la EEPROM. Al ponerse en alto, se cuenta con 4 ciclos para iniciar la escritura con EEPE, de lo contrario se limpiará automáticamente por Hardware
EEPE : EEPROM Write Enable Debe ponerse en alto para dar inicio a un ciclo de escritura. Se limpiará automáticamente por Hardware al finalizar la escritura. Un programa de usuario puede monitorear este bit o si se pone en alto a EERIE se producirá una interrupción
EERE : EEPROM Read Enable Debe ponerse en alto para un ciclo de lectura, se limpiará automáticamente por Hardware. El dato leído está disponible de manera inmediata. No es posible realizar una lectura si hay una escritura en proceso.
Sistema de Interrupciones
Una interrupción es la ocurrencia de una condición, un evento generado por un recurso del MCU que ocasiona la suspensión temporal del programa principal. El evento es atendido con una rutina de servicio a la interrupción (ISR) o un manejador de interrupción. La rutina de atención para una interrupción debe colocarse en una dirección pre-establecida por Hardware, formando parte de un vector de interrupciones. Al concluir con la ISR, la CPU continúa con la ejecución del programa principal. Al utilizar un sistema manejador de interrupciones se tiene la ilusión de que se están haciendo diferentes tareas en forma simultánea.
Interrupciones en los AVRs
Interrupciones externas.
Ante cambios en las terminales.
Interrupciones por los temporizadores, pueden ser por comparación, captura o desbordamiento.
Al completar una transferencia serial (puerto SPI).
Ocasionadas por el puerto serie (USART), por transmisión, recepción o buffer vacío.
Por el convertidor analógico digital.
Al finalizar una escritura en EEPROM.
Por el comparador analógico.
Por la interfaz serial a dos hilos (TWI).
Al escribir en memoria de programa.
El número real de interrupciones depende del dispositivo.
Las interrupciones no están activadas después del reset.
Su activación requiere la puesta en alto del bit I, en el registro de estado (SREG), además de las habilitaciones individuales para que los recursos puedan interrumpir a la CPU. Además del Reset, en el ATMega328 se tienen 25 fuentes de interrupción, cada una con su propia dirección.
Al generarse una interrupción, el PC es almacenado en la pila y toma el valor de una entrada en el vector de interrupciones (según sea la interrupción). Además de desactivar al bit I para no aceptar más interrupciones.
La ISR debe terminar con la instrucción RETI, la cual recupera el valor del PC de la pila y ajusta al bit I.