Différences entre versions de « Atmega328 registers »
Ligne 34 : | Ligne 34 : | ||
= Manipulations = | = Manipulations = | ||
Maintenant que l'on à clairement identifié le groupe et la position du bit dans le registre, passons à la manipulation ! | Maintenant que l'on à clairement identifié le groupe et la position du bit dans le registre, passons à la manipulation ! | ||
− | + | == Rappel sur les tables de vérité == | |
+ | Pour manipuler les bits nous utiliseront principalement le ''OU'' ainsi que le ''ET'' | ||
+ | |||
+ | == Passage d'une broche à l'état HIGH == | ||
+ | |||
+ | == Passage d'une broche à l'état LOW == |
Version du 1 novembre 2018 à 15:20
Introduction
Lorsque l'on commence à écrire des programmes qui sortent de l'ordinaire ou que l'on veut pousser un microcontrôleur à la limite de ces capacité, il est obligatoire de descendre au niveau des registres. Seulement voila, la manipulation de registre ne s'improvise pas, nécessite de connaître le hardware que l'on utilise et, de par sa nature, est spécifique à un type de microcontrôleur !
Manipuler les registre implique donc de sacrifier la portabilité du code, offerte par l'utilisation des fonctions haut niveau comme digitalWrite(), au profit de la vitesse d'exécution et de la compacité du code.
Les fonctions comme digitalWrite(), digitalRead(), pinMode() permettent au développeur d'accomplir une action sans avoir à se soucier du type de microcontrôleur utilisé mais, in finé, elle vont elle même manipuler les registres pour accomplir ces tâches !
Le cas de l'ATmega328
Manipulations
Maintenant que l'on à clairement identifié le groupe et la position du bit dans le registre, passons à la manipulation !
Rappel sur les tables de vérité
Pour manipuler les bits nous utiliseront principalement le OU ainsi que le ET