Étape 8: Programmation de l’AVR
Si vous avez besoin d’informations sur la programmation de AVR MCU, j’ai utilisé AVRStudio pour un autre projet AVR, que je l’ai fait, mais j’ai récemment trouvé un Instructable sur l’utilisation d’Eclipse comme un IDE. J’ai comme Eclipse beaucoup mieux, mais c’est tous les préférences personnelles.
PROGRAMMATION
Il y a beaucoup de Instructables sur comment démarrer avec AVR programmation. J’ai inclus mes projets Eclipse incluent les fichiers sources C, ainsi que les fichiers .hex précompilé.
Si vous utilisez un ATMega328/168 - utiliser les fichiers TronV1. Si vous utilisez un Attiny45, utilisez les fichiers de TronTiny.
Les deux implémentations exécutent les puces à la pleine 8Mhz à l’aide de l’oscillateur interne. Other than that, j’utilise les bits fusible standard - bien que vous pourriez ajouter la détection de baisse de tension comme les puces MAX72XX cessent de travailler à 4v.
COMPRENDRE LE PROGRAMME
Si vous n’êtes pas intéressé à modifier ou comprendre le code - vous pouvez sauter cette section:)
Communication à la Max7221/7219 se compose de deux octets - un octet indiquant ce qui est important (registre de commande) nous sommes à jour (paramètres, valeurs pour un segment, etc.). Le deuxième octet contient la valeur à écrire.
Chaque segment de 8 LED est abordées à travers une série de bits (8 bits = 1 octet). Ainsi, par exemple - la valeur binaire suivante s’allume seulement LED1 - 00000001. La valeur suivante allumer la LED 8 - 10000000.
Commandes sont envoyées à la puce en utilisant la fonction sdp8. Les noms de Registre et de fonctions d’assistance se trouvent dans le fichier LEDControl.h.
Il y a quelques différences entre les implémentations Tiny et Mega. ATTiny45 ne supporte pas les SPI, donc j’ai trouvé un code plutôt utiliser USI (AVRFreaks.net est une grande source). Il y a certains port pin différences aussi bien - comprendre un examen est une tige de 8 MUC et l’autre a 28 broches.
Vous devriez pouvoir porter ceci à un grand nombre de jetons d’AVR, pourvu que vous configurez les minuteries et les ports correctement.