Paso 8: Blink!
Por último veamos la rutina de abrir y cerrar:
blink: sbi PORTD, 4 rcall delay cbi PORTD, 4 rcall delay rjmp blink
En primer lugar encendemos PD4, entonces nosotros rcall nuestra subrutina de retardo. Utilizamos rcall para que cuando la PC se pone a una declaración "ret" volverá a la línea siguiente rcall. Luego los retrasos rutina de retardo de 30 cuentas en la variable de overflow como hemos visto y esto es casi exactamente 1/2 segundo, entonces apagamos PD4, retrasar el otro 1/2 segundo y luego volver al principio otra vez.
El resultado neto es un LED que parpadea!
Creo que ahora estarán de acuerdo que "parpadear" probablemente no es el mejor programa de "Hola mundo" en lenguaje ensamblador.
Ejercicio 3: cambiar los distintos parámetros en el programa para que parpadea el LED en diferentes ritmos como un segundo o 4 veces un segundo, etc..
Ejercicio 4: cambiar para que el LED está encendido y apagado para diferentes cantidades de tiempo. Por ejemplo en 1/4 de segundo y luego se apaga durante 2 segundos o algo así.
Ejercicio 5: cambiar los bits de selección de reloj de TCCR0B a 100 y luego continuar hasta la mesa. ¿En qué momento hace indistinguible de nuestro programa "hello.asm" del tutorial 1?
Ejercicio 6 (opcional): Si usted tiene un oscilador de cristal diferentes, como a 4 MHz o un 13,5 MHz o lo que sea, cambiar su oscilador de 16 MHz en tu protoboard para uno nuevo y ver cómo eso afecta la tasa de parpadea del LED. Ahora debe poder pasar por el cálculo preciso y predecir exactamente cómo afectará a la tasa.