Cours:TPS 2103 1 : Différence entre versions

De troyesGEII
Aller à : navigation, rechercher
(Page créée avec « Nous avons abordé la programmation des cartes arduino au premier semestre en utilisant des fonctions de haut niveau ce qui, bien que pouvant simplifier certaine tâche, p... »)
 
Ligne 3 : Ligne 3 :
 
L'objectif de ces TPs est de découvrir le fonctionnement du µcontrôleur Atmega328p et d'en explorer les possibilités.
 
L'objectif de ces TPs est de découvrir le fonctionnement du µcontrôleur Atmega328p et d'en explorer les possibilités.
  
Nous commencerons simplement de façon analogue au [[Cours:ArduinoBoutons|premier TP du module M1102]] en configurant des e/s.
+
Nous commencerons simplement de façon analogue au [[Cours:ArduinoBoutons|premier TP du module M1102]] en configurant des e/s (il est sans doute utile de jeter un coup d’œil au lien précédent !).
 +
 
 +
=Ex 1: mise en jambe !=
 +
 
 +
Nous considérons pour le moment [[Cours:Shieldinfo|le bouton A et la led de droite (p0)]].
 +
 
 +
{{Question : Complétez le programme suivant pour que la led s'allume si le bouton est appuyé}}
 +
 
 +
<source lang=c>
 +
 
 +
void setup()
 +
{
 +
  DDRD = 0x?? ;  // configuration des e/s (registre de direction DDRx) sur le port D.
 +
}
 +
 
 +
void loop()
 +
{
 +
  if ( (PORTD & 0x?? ) != 0 )  // on observe l'état de l'entrée
 +
        PIND |= 0x??;          // on modifie en conséquence l'état de la sortie
 +
  else
 +
        PIND &= 0x??;
 +
}
 +
 
 +
</source>

Version du 23 mars 2014 à 23:33

Nous avons abordé la programmation des cartes arduino au premier semestre en utilisant des fonctions de haut niveau ce qui, bien que pouvant simplifier certaine tâche, présente un certain nombre de limitation.

L'objectif de ces TPs est de découvrir le fonctionnement du µcontrôleur Atmega328p et d'en explorer les possibilités.

Nous commencerons simplement de façon analogue au premier TP du module M1102 en configurant des e/s (il est sans doute utile de jeter un coup d’œil au lien précédent !).

Ex 1: mise en jambe !

Nous considérons pour le moment le bouton A et la led de droite (p0).

Modèle:Question : Complétez le programme suivant pour que la led s'allume si le bouton est appuyé

void setup()
{
   DDRD = 0x?? ;  // configuration des e/s (registre de direction DDRx) sur le port D.
}

void loop()
{
   if ( (PORTD & 0x?? ) != 0 )  // on observe l'état de l'entrée
         PIND |= 0x??;          // on modifie en conséquence l'état de la sortie
   else
         PIND &= 0x??;
}