En este artículo, veremos cómo crear retrasos para el AVR. Además, discutiremos la canalización de instrucciones.
Cálculo de retardo para AVR:
en las instrucciones en lenguaje ensamblador, para crear un retardo de tiempo se deben considerar dos factores importantes.
- La frecuencia
del cristal: la frecuencia del oscilador de cristal conectado a XTAL1 y XTAL2 es un factor para calcular el retardo de tiempo. La duración del período de reloj para el ciclo de instrucción es una función de esta frecuencia de cristal. - El diseño
AVR: los microprocesadores AVR pueden ejecutar una instrucción en un ciclo. Hay tres maneras de hacer esto.- Utilice la arquitectura Harvard para obtener la máxima cantidad de código y datos en la CPU.
- Utilice las características de la arquitectura RISC, como las instrucciones de tamaño fijo.
- Utilice la canalización para superponer la obtención y la ejecución de instrucciones.
Canalización:
en los primeros microprocesadores, la CPU podía buscar o ejecutar en un momento dado. En otras palabras, la CPU tenía que obtener una instrucción de la memoria, luego ejecutarla y luego nuevamente obtener la siguiente instrucción, ejecutarla, y así sucesivamente. La canalización permite que la CPU busque y ejecute la instrucción dada al mismo tiempo.
Podemos usar la canalización para acelerar la ejecución de instrucciones. En las canalizaciones, el proceso de ejecución se divide en pasos más pequeños que se ejecutan en paralelo. En la ejecución de instrucciones, debemos asegurarnos de que la secuencia de instrucciones se mantenga intacta y que no haya una ejecución diferente.
Tiempo de ciclo de instrucción para el AVR:
la CPU tarda una cierta cantidad de tiempo en ejecutar una instrucción. Este tiempo se denomina ciclos de máquina. Todas las instrucciones en el AVR son de 2 o 4 bytes y, por lo tanto, la mayoría de las instrucciones no requieren más de 2 ciclos de máquina para ejecutarse (algunas instrucciones pueden demorar de 3 a 4 ciclos de máquina para ejecutarse). En la familia AVR, la duración del ciclo de la máquina depende de la frecuencia del oscilador conectado al sistema AVR. En el AVR, un ciclo de máquina consta de un período de oscilador, lo que significa que con cada reloj de oscilador, pasa un ciclo de máquina. Por lo tanto, para calcular el ciclo de máquina del AVR, tomamos el inverso de la frecuencia del cristal.
Ejemplo-1:
Para las frecuencias de cristal dadas, calcule el período de los ciclos de instrucción.
a) 8 MHz b) 16 MHz Solution : a) instruction cycle = 1/ 8 MHz = 0.125 us (microsecond) b) instruction cycle = 1/ 16 MHz = 0.0625 us
Ciclos de instrucción requeridos por diferentes instrucciones (considerando 1 MHz como la frecuencia del cristal):
Instrucción | Ciclos de instrucción | hora de ejecutar |
---|---|---|
LDI | 1 | 1 nosotros |
DIC | 1 | 1 nosotros |
AFUERA | 1 | 1 nosotros |
AGREGAR | 1 | 1 nosotros |
NOP | 1 | 1 nosotros |
JMP | 3 | 3 nosotros |
LLAMAR | 4 | 4 nosotros |
BRNE | 2/1 | 2 us si se toma, 1 us si falla |
Ejemplo-2:
encuentre el retraso en nosotros del fragmento de código a continuación si la frecuencia del cristal es de 10 MHz.
Instruction Cycles DELAY : LDI COUNT, 0XFF 0 Again : NOP 1 NOP 1 NOP 1 DEC COUNT 1 BRNE AGAIN 2/1 RET 4 Solution : Time Delay = [1 +(( 1+ 1+ 1+ 1 + 2 ) x 255) + 4 ] x 0.1 us = 153.5 us
Publicación traducida automáticamente
Artículo escrito por kunalsg18elec y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA