Leçons de niveau 15

Kidule Dé/Tester si un Bouton est pressé (Entrée)

Une page de Wikiversité.
Sauter à la navigation Sauter à la recherche
Début de la boite de navigation du chapitre
Tester si un Bouton est pressé (Entrée)
Icône de la faculté
Chapitre no 2
Leçon : Kidule Dé
Chap. préc. :Allumer une Led (Sortie)
Chap. suiv. :Déclarer et initialiser le Hardware
fin de la boite de navigation du chapitre
Icon falscher Titel.svg
En raison de limitations techniques, la typographie souhaitable du titre, « Kidule Dé : Tester si un Bouton est pressé (Entrée)
Kidule Dé/Tester si un Bouton est pressé (Entrée)
 », n'a pu être restituée correctement ci-dessus.

Pour tester si un Bouton est pressé, on peut faire un test avec l'instruction if

#include "hardwareDe.h" // Toutes les définitions
 
void loop()
{
   if (Poussoir==Presse) {
      Led0 = Allume;
   }
   else {
      Led0 = Eteint;
   }
}

Voilà, c’est tout simple. Si cela te suffit comme explications, tu peux aller à la suite Kidule Dé/Déclarer et initialiser le Hardware

Pour ceux qui veulent en savoir plus‎

Les entrées sorties[modifier | modifier le wikicode]

Le PIC permet de décider pour chaque PIN (patte du chip) si c’est une entrée (par exemple pour lire un bouton) ou une sortie (par exemple pour allumer une LED). Pour cela, il faut bien comprendre comment est fabriqué une "patte" du chip. Certaine pattes peuvent faire les choses encore plus spéciale comme lire une tension ou faire un compteur, mais on n'utilise pas cela ici.

Une Entrée[modifier | modifier le wikicode]

Pour faire qu'une pin devienne une entrée, il faut d’abord écrire un 1 dans le bit correspondant de TRISx. Cela coupe la partie Data Latch [1] de la pin (symbolisé par le triangle ou il y a une croix en rouge).

Lorsque l’on ne lit pas l'entrée, l'état de la pin est mis en permanence dans le latch[2]. Au moment de la lecture, on verrouille le latch pour éviter que la valeur risque de changer en cours de route.

pour lire le bit 0 du PORTA, on peut écrire

if (PORTAbits.PORTA0 == 0) {
  /* si 1*/
}
else { 
  /* si 0*/
}