Etape 5: Programmation Ports
Avantages de l’utilisation des ports : plus rapide que l’aller par pin, prend moins de code d’un programme plus petit
Inconvénients : Plus difficile à utiliser et déboguer
J’ai choisi arbitrairement port D que mon port.
Quelques points de base à garder à l’esprit pour l’utilisation des ports
Variables (X doit être remplacé par la lettre de port correct)
DDRX--Données Direction s’inscrire-détermine de quelle manière doivent flux de données pour chaque broche sur le port (0 est entrée et 1 sortie)
Registre de données PORTX----détient les données qui sont en entrée/sortie aux pins
PINX--entrée pins s’inscrire
Les broches dans le Registre sont ordonnées de numéro inférieur = moindre peu significatif au plus grand nombre - Bit le plus significatif (afin d’obtenir des broches 0-3 égale à 0 et 4-7 égale à 1, il serait PORTD = B11110000)
Exemple de Code
int delayTime = 333 ; Il est mieux de codage style pour ne pas avoir toutes les constantes codées en dur comme dans l’exemple précédent
portD_HIGH octets = B11111000 ;
portD_LOW octets = B00000000 ;
void setup()
{
DDDR = DDDR | B11111100 ; Met en place les chevilles pour la sortie
Regardez ce que nous venons
le | symbole est utilisé comme opérateur de bits ou (si un bit est 1, résultat sera 1)
Cela passe par le registre, ORing chaque bit avec le binaire vers la droite de la |
le B rend le compilateur lire la 11111100 en binaire
Donc en résumé, il affecte à broches 2-7 sortie et laisse 1 et 2 (qui parfois
ont des fonctions spéciales) seul
}
void loop()
{
PORTD = portD_HIGH ; ensembles de broche ledPin haute (donc pin 13 est définie sur 1)
Delay(delayTime) ; attend 333ms ou ~1/3 sec
PORTD = portD_LOW ; ensembles de broche ledPin à faible (donc pin 13 est maintenant égal à 0)
Delay(delayTime) ; attend un autre 333 ms
} //end de la sous-routine de boucle, donc il va maintenant retourner au début
Tous les 5 LEDs doivent maintenant clignoter joyeusement loin.