Étape 3: La programmation
Une puce AVR peut être programmée de différentes façons.
- Installer le Arduino Bootloader pour utiliser l’IDE et la langue
- Utiliser l’assembly. Bien que cela peut être très difficile à lire et à écrire, il peut être très efficace.
- Utilisation Atmel officiel IDE Atmel Studio, mais il est uniquement disponible sur Windows, Linux ou Mac
- Créer programme de vos émissions préférées éditeur de texte ou de C puis compiler et flash à l’aide d’avr-gcc et avrdude.
Cela offre un agréable compromis entre lisibilité et efficacité ainsi que de travailler sur toutes les plateformes.
Je détaillerai la quatrième et dernière option.
Beaucoup d’éditeurs ne fonctionnera comme vous vont tout simplement écrire un programme C: Eclipse, notepad ++, vi, ainsi que bien d’autres encore.
S’il vous plaît télécharger le fichier joint led_flash.c et makefile.
J’ai utilisé un 85 ATTiny pour ce projet.
Je vais d’abord expliquer le code.
La première ligne de code est :
Cette opération importe les constantes relatives à votre puce d’AVR dans le programme. Lorsque vous compilez le programme, vous devez spécifier le type de puce AVR que vous utilisez.
L’importation suivante :
Cela inclut la fonction pour mettre en pause la puce pendant la boucle.
Vient ensuite quelques définitions :
Définit des macros pour changer la lumière et descendre la chaîne en une seule étape.
Définit des macros pour définir un registre complet de sortie et de permettre la première lumière.
Ces définitions essentiellement créent des macros afin qu’il est inutile d’utiliser le code à la fin plus tard. Il peut permettre au code d’être beaucoup plus lisible qu’avant.
Affecter le registre tous les 1 en binaire entraîne toutes les broches pour une sortie, plutôt que de l’entrée.
Le port puis définit la valeur de l’axe à haute ou basse.
port << 1 décale le code pin activé 1 place. port >> 1 il se déplace dans la direction opposée.
Deux fonctions qui permettent l’essai facile d’if les premiers ou le derniers broches sont utilisées actuellement par les lumières.
Encore une fois, cela rend le code plus tard plus lisible.
Il s’agit de la partie principale de notre fonction. L’int main (void) fonction est appelée au démarrage de la puce. Nous avons d’abord activer le registre B pour toutes les sorties. Puis nous avons activée la première lumière et déclarer une valeur booléenne qui se souvient de quelle direction aller. Chaque retard première boucle pendant 2 seconde, puis vérifie si la direction a besoin de changer. Enfin, il déplace la lumière dans la direction donnée et répète la boucle.
C’est tout ! le programme final est un peu abstrait pour lui permettre d’être très faciles à lire.
Haut suivant : Le makefile pour automatiser la compilation et processus de clignotant