Systèmes embarqués et firmware

Quelle méthode est la plus appropriée pour éliminer par logiciel le rebond d'un interrupteur ?

  1. AAugmenter le nombre de lectures et considérer l'interrupteur appuyé dès qu'une lecture vaut 1
  2. BLire la broche toutes les quelques millisecondes et ne considérer un changement d'état qu'après plusieurs lectures consécutives identiques
  3. CRedémarrer le microcontrôleur à chaque appui
Afficher la réponse et l'explication

Réponse : B. Lire la broche toutes les quelques millisecondes et ne considérer un changement d'état qu'après plusieurs lectures consécutives identiques

Le rebond s'éteignant en quelques millisecondes, lire la broche par exemple toutes les 5 ms et ne valider un changement d'état qu'après trois lectures identiques consécutives permet d'ignorer les variations pendant les rebonds. Une lecture périodique par interruption de temporisateur évite de bloquer les autres traitements. Un délai trop long rend la réponse lente ; on l'adapte aux caractéristiques de l'interrupteur.

S'entraîner sur ce thème Retour au thème

Autres questions sur Systèmes embarqués et firmware

  1. Un temporisateur compte une horloge de 16 MHz divisée par 16 par le prédiviseur et déclenche une interruption tous les 1000 comptes. Quel est l'intervalle entre interruptions ?
  2. Pour un signal PWM de période 1000 comptes, la sortie est à 1 (High) pendant 250 comptes par période. Quel est le rapport cyclique ?
  3. Quelle méthode est couramment utilisée par un microcontrôleur pour régler la luminosité d'une LED ou la vitesse de rotation d'un moteur ?
  4. Quelle utilisation de la fonction de capture d'entrée (input capture) du temporisateur d'un microcontrôleur est correcte ?
  5. Que convient-il le plus d'éviter dans un gestionnaire d'interruption ?

Comparatifs sur ce thème