Paso 8: Programación del AVR
Si usted necesita información sobre la programación de AVR MCU, utilicé AVRStudio para otro proyecto AVR que hice, pero recientemente encontré un Instructable sobre el uso de Eclipse como un IDE. Me gusta Eclipse mucho mejor, pero es todas sus preferencias personales.
PROGRAMACIÓN
Hay un montón de Instructables sobre cómo empezar con AVR programación. He incluido mis proyectos de Eclipse, que incluyen los archivos fuente de C, así como los archivos .hex precompilado.
Si usas un ATMega328/168 - utilice los archivos de TronV1. Si usas un Attiny45, utilice los archivos de TronTiny.
Ambas implementaciones ejecutan las virutas en el completo 8Mhz usando el oscilador interno. Aparte de eso, estoy usando bits de fusible estándar - aunque podrías añadir detección de voltaje como los chips de MAX72XX dejan de trabajar en 4v.
ENTENDER EL PROGRAMA
Si usted no está interesado en modificar o comprender el código - usted puede omitir esta sección :)
Comunicación para el Max7221/7219 consiste en dos bytes - byte que indica qué valor (comando registro) estamos actualizando (ajustes, valores de un segmento, etc.). El segundo byte contiene el valor a escribir.
Cada segmento de 8 LED es abordado a través de una serie de bits (8 bits = 1 byte). Así, por ejemplo, el siguiente valor binario se encenderá sólo LED1 - 00000001. El valor siguiente encienda LED 8 - 10000000.
Comandos son enviados al chip mediante la función sdp8. Registro de nombres y funciones auxiliares pueden encontrarse en el archivo LEDControl.h.
Hay algunas diferencias entre las implementaciones de Tiny y Mega. ATTiny45 no soporta SPI, por lo que he encontrado algo de código a utilizar en lugar de USI (AVRFreaks.net es una gran fuente). Hay algún puerto y pin-comprensión teniendo en cuenta uno es un perno 8 MUC, y el otro tiene 28 pines.
Debe poder llevar esto a un gran número de fichas AVR, siempre configurar los temporizadores y los puertos correctamente.