Paso 3: La programación
Un chip AVR se puede programar de varias maneras diferentes.
- Instalar el Arduino Bootloader para usar el IDE y lenguaje
- Utilice montaje. Aunque esto puede ser muy difícil de leer y escribir, puede ser muy eficiente.
- Estudio de Atmel de IDE oficial de uso Atmel, pero sólo está disponible en Windows, no Linux o Mac
- Crear programa en su favorito C o texto editor luego compilar y flash con avr-gcc y avrdude.
Esto ofrece un buen compromiso entre legibilidad y eficacia así como trabajar en todas las plataformas.
Detallaré la cuarta y última opción.
Muchos editores trabajará para ello, que ser simplemente escribiendo un programa en C: Eclipse, notepad ++, vi, así como muchos más.
Por favor descargue el archivo adjunto led_flash.c y makefile.
Usé un ATTiny 85 para este proyecto.
En primer lugar explicaré el código.
La primera línea de código es:
Esto importa las constantes relativas a su chip AVR en el programa. Cuando se compila el programa, usted debe especificar el tipo de chip AVR que utilizas.
La siguiente importación:
Esto incluye la función para pausar la viruta durante el bucle.
A continuación se presenta algunas definiciones:
Define macros para cambiar la luz arriba y abajo de la cadena por un paso.
Define macros para definir un registro entero de la salida y la primera luz.
Estas definiciones esencialmente crean macros por lo que no necesitamos usar el código en el final más adelante. Puede permitir el código mucho más legible que antes.
Establecer el registro para todos 1 en binario hace que todos los pernos al ser una salida, en lugar de entrada.
El puerto entonces establece el valor del pin para alta o baja.
Puerto << 1 cambia de puesto el pin habilitado por 1 lugar. Puerto >> 1 se mueve en la dirección opuesta.
Dos funciones que permiten la fácil prueba de if los pasadores primeros o últimos se utilizan actualmente por las luces.
Una vez más, esto hace el código más adelante más legible.
Esta es la parte principal de nuestra función. La función int Main se llama a cuando arranca el chip. Primero habilitamos el registro B que todas las salidas. Entonces prendió la luz primera y declarar un valor boolean que recuerda qué dirección ir. Cada retraso primer bucle.2 segundo, a continuación, comprueba si la dirección tiene que cambiar. Finalmente cambia la luz en la dirección dada y se repite el bucle.
Eso es todo! el programa final se abstrae un poco para permitir que sea fácilmente legible.
Hasta próximo: El makefile para automatizar la recopilación y proceso de flasheo