Etape 2: Lecture et d’écriture des registres
Manipuler les AVR enregistre pendant la course
Pour obtenir une liste de tous les registres connus sur votre Arduino, tapez :
et vous obtiendrez un imprimé qui ressemble à ça...
Pour déterminer comment les bits sont définis dans n’importe quel Registre, utilisez la commande cat ou un écho :
Je demande ici l’interpréteur de commandes pour afficher ou echo, le contenu, le but général d’e/s s’inscrire # 0. Notez le signe pourcentage (%) devant le nom du Registre. Vous avez besoin pour indiquer à la coquille qu’il s’agit d’un mot clé réservé identifier un registre. La sortie typique d’une commande echo ressemble à ceci :
Le résultat indique le nom du Registre, la valeur hexadécimale trouvé dans le registre et la représentation binaire du Registre (montrant chaque bit comme un 1 ou 0). Pour définir un peu particulière dans n’importe quel Registre, utilisez le « indice des » operator []. Par exemple, disons que je veux que le bit 3 à 1.
et la coque vous donnera une réponse indiquant son action et le résultat :
Dont' oublier le symbole de pourcentage indiquer au shell que vous travaillez avec un registre. Notez également qu’en définissant le bit 3, qui est 4 bits car notre AVR utilise un index de base zéro. En d’autres termes, en comptant à la 3e bit vous compter 0, 1, 2, 3, qui est la 4e place, mais le bit 3 rd. Vous pouvez effacer un peu de la même manière en affectant un peu à zéro.
En positionnant les bits comme cela, vous pouvez modifier le fonctionnement de votre AVR à la volée. Par exemple, en changeant la minuterie de la CCT correspond à la valeur trouvée dans OCR1A. Il vous permet également de lire dans des paramètres particuliers que vous auriez à vérifier par programme dans votre code, telles que la valeur UBBR pour votre débit en bauds.
Travail avec DDRn, PORTn et PINn
Les broches e/s sont également affectés aux registres et peuvent être définies dans exactement de la même manière, mais une syntaxe spéciale a été créée pour travailler avec ces types de registres.
Dans le code, il y a un processus normal pour, disons, allumer une LED ou autre dispositif qui nécessite un numérique haute ou basse. Il faut définir le registre de Direction de données pour indiquer que le code pin est pour la sortie et puis en écrivant un 1 ou 0 pour le bit particulier dans le port correct. En supposant que nous avons une LED connectée au numérique broche 13 (PB5) et nous voulons allumez-le, voici comment faire cela alors que votre AVR est en cours d’exécution :
La sortie, en plus d’être en mesure de voir votre LED s’allume, ressemblerait à ceci :
« La racine est invite de l’interpréteur qui indique il est prêt à accepter les commandes de votre part. Pour éteindre le voyant, vous écririez simplement un creux sur la broche. Si vous voulez lire l’entrée d’un axe numérique, utilisez la commande de lecture. En utilisant notre exemple ci-dessus :
Vous pouvez également juste écho le registre de la broche qui contrôle ce port pin. Par exemple, si nous avons des interrupteurs dip connectés à la broche numérique 7 et 8 (PD7 et PD8), vous pouvez envoyer la commande :
et la coquille s’afficherait alors le contenu de ce registre, en vous montrant tous les États d’entrée/sortie des périphériques connectés et si l’état de l’interrupteur est allumé ou éteint.