myespaciogreta - INTERRUPCIONES AVR
|
|
|
|
|
arquitectura de computacion |
|
|
|
INTERRUPCIONES AVR
PROGRAMACION DE MICROCONTROLADORES AVR.
Los microcontroladores AVR de ATMEL son una familia bastante potente y asequible. Son RISC y ofrecen características como la programación ISP (en el propio circuito), temporizadores, comparadores analógicos, PWM, RS232 y un largo etcétera. Aquí se explica qué se necesita para poder escribir programas en C y C++.
TIPOS DE INSTRUCCIONES
El set de instrucciones del AVR se puede dividir según las especialidades:
Instrucciones Aritméticas y Lógicas.
Instrucciones de Salto.
Instrucciones de Transferencia de Datos.
Instrucciones Orientadas a Bits.
Instrucciones de Control del MCU.
INSTRUCCIONES ARITMETICAS Y LOGICAS
La instrucción ADD, suma dos registros sin la bandera de acarreo y el resultado lo coloca en el registro destino (Rd).
La instrucción EOR, ejecuta la operación lógica X-OR al contenido del registro destino y el registro fuente colocando el resultado en el registro destino (Rd).
La instrucción COM, realiza el complemento a 1 al registro destino (Rd). Mientras que la instrucción NEG, realiza el complemento a 2 al registro destino (Rd).
La instrucción MUL, realiza la operación de multiplicación de dos registros de 8 bits sin signo, y el resultado de 16 bits lo coloca en el registro 1, el byte alto, y registro 0, el byte bajo.
La instrucción MULS, realiza la misma operación que la instrucción MUL solo que se toma en cuenta el bit de signo.
En la tabla, se muestra el menú de las instrucciones Aritméticas y Lógicas. Se indica en la tabla el mnemónico de cómo reconoce el MCU la instrucción, los operandos que utiliza cada instrucción, así como también la operación que realiza y las banderas afectadas, además de los ciclos de reloj en que el MCU tarda en ejecutar la instrucción.
INSTRUCCIONES DE SALTO
Existen dos tipos de salto: los saltos condicionales, que son aquellos que antes de saltar requieren verificar una de las banderas del Registro de Estado (SREG), mientras que los saltos incondicional es no requieren verificar ninguna bandera, en cuanto el micro los encuentre este saltará a la nueva posición marcada con la etiqueta.
La instrucción RJ MP, es un salto incondicional. Salto relativo a una dirección ubicada en el rango de PC – 2K + 1 a PC + 2K.
La instrucción IJ MP, es un salto incondicional. Salto indirecto, ya que brincara a una dirección apuntada por el registro Z de 16 bits.
La instrucción BRCS, es un salto condicional. Verifica la bandera de acarreo, C, y salta en un rango de PC – 63 ≤ destino ≤ PC + 64, si esta bandera está en 1. Este tipo de instrucciones siempre van colocadas después de CP, CPI, SUB o SUBI.
La instrucción BRNE, es un salto condicional. Verifica la bandera cero, Z, y salta en un rango de PC – 63 ≤ destino ≤ PC + 64, si esta bandera está en 1. Este tipo de instrucciones siempre van colocadas después de CP, CPI, SUB o SUBI.
INSTRUCCIONES DE TRANSFERENCIA DE DATOS
La instrucción MOV, hace una copia de un registro a otro. El registro fuente, Rr, no sufre ningún cambio, mientras que el registro destino, Rd, se carga con una copia de Rr.
La instrucción MOVW, hace una copia de un par de registros a otro par de registros. El par de registros fuente, Rr+1:Rr, no sufren ningún cambio, mientras que el par de registros destino, Rd+1:Rd, se cargan con una copia de Rr+1:Rr.
La instrucción LD, carga un byte indirecto con o sin desplazamiento de un espacio de memoria a un registro. El espacio de memoria es direccionado por los registros apuntadores de 16 bits X, Y o Z.
La instrucción LDI, carga una constante de 8 bits directamente a los registros de r16 a R31.
La instrucción ST, almacena un byte indirecto del registro a un espacio de memoria. El espacio de memoria es direccionado por los registros apuntadores de 16 bits X, Y o Z.
La instrucción LPM, carga un byte del registro apuntado por Z a un registro destino.
La instrucción IN, carga datos desde un espacio de I/O (Puertos, Timers, Registros de Configuración, etc.) al registro destino, Rd.
La instrucción OUT, envía los datos desde un registro fuente, Rr, a un espacio de I/O (Puertos, Timers, Registros de Configuración, etc.).
INSTRUCCIONES ORIENTADAS A BITS
La instrucción SBI, pone un uno en el bit del registro especificado
La instrucción CBI, limpia un bit del registro especificado.
La instrucción LSL, recorre todos los bits a la izquierda en un bit. El Bit 0 se limpia. El Bit 7 se carga en la bandera de acarreo, C, del registro SREG. Esta instrucción efectúa multiplicaciones de números con signo y sin signo por 2.
La instrucción LSR, recorre todos los bits a la derecha en un bit. El Bit 7 se limpia. El Bit 0 se carga en la bandera de acarreo, C, del registro SREG. Esta instrucción efectúa divisiones de números sin signo entre 2.
La instrucción ROL, recorre todos los bits del registro destino a la izquierda. La bandera del acarreo se pasa al Bit 0 del registro. El Bit 7 se pasa a la bandera del acarreo, C.
Esta instrucción combinada con LSL, efectúa multiplicaciones de varios bytes con
valores con signo y sin signo por 2.
INSTRUCCIONES DE CONTROL DEL MCU Unidad de Control Multipunto (MCU).
Es un dispositivo de red que se usa como puente en conexiones de audio conferencia y videoconferencia. La función principal de un MCU es gestionar la comunicación entre diferentes terminales en un esquema de transmisión multipunto.
La instrucción NOP, se ejecuta en un solo ciclo de instrucción, y no realiza nada.
La instrucción SLEEP, coloca al circuito en modo “dormido” definido por el modo de control del MCU.
La instrucción BREAK, se usa para un sistema de debug interno. Cuando se ejecuta esta instrucción el CPU del AVR se coloca en modo de “Stop”. Esto ayuda a accesar a los recursos internos del micro a través de software
|
Hoy habia 5 visitantes (12 clics a subpáginas) ¡Aqui en esta página!
|
|
|
|