Etabli
← Retour aux leçons
Leçon · AVN-08 · Interruptions et timers · 1/4

Comprendre les interruptions

4 étapes·20 min·0/4 fait·quiz à réussir
voix

Au module des , tu as recopié une formule magique sans poser de questions : attacher une , incrémenter, rendre la main. Elle marchait — mais tu l'utilisais d'instinct. Ce module ouvre enfin le capot : la sonnette qui suspend la boucle, les fronts qui la font sonner, les règles d'or de la routine. À la fin, tu sauras POURQUOI ton compteur ne perdait aucun cran — et tu sauras réagir en là où ta boucle met des millisecondes.

📖 Comprendre

1. La sonnette : suspendre, exécuter, reprendre

Une est une sonnette câblée dans le : quand l'événement convenu survient — un sur une , l'échéance d'un compteur interne —, le processeur suspend le en cours, note précisément où il en est, exécute une petite fonction dédiée, puis reprend l'instruction suivante comme si de rien n'était. Cette fonction s'appelle la — ISR en anglais, pour Interrupt Service Routine.

Tout l'intérêt tient dans les ordres de grandeur. Entre l'événement et la première ligne de la routine, il s'écoule environ 2 µs ; entre deux passages de ta boucle au même endroit, plusieurs millisecondes — mille à dix mille fois plus. La sonnette répond en là où la boucle met des millisecondes : c'est pour cela qu'elle ne rate jamais rien, et c'est pour cela qu'on lui confie tout ce qui est bref et urgent.

loop()front sur la brocheroutine : lever le drapeaususpendre, capter, reprendre — sans perdre sa ligne

2. La scrutation et ses trous : ce que la boucle ne voit pas

La lit la au passage de la boucle : entre deux lectures s'écoule tout un tour — mesure, décisions, affichages, parfois un — soit des dizaines de millisecondes. Toute assez brève pour commencer ET finir dans ce trou passe inaperçue, sans erreur ni message : le compte est simplement faux, et il le restera. C'est exactement le défaut que ton comptage d' avait fui d'instinct.

La garde pourtant son domaine : les événements lents et longs. Un pressé par un humain reste enfoncé cent millisecondes — n'importe quelle boucle le voit passer. Mais un cran d' à pleine vitesse dure quelques millisecondes, une d' quelques centaines de : à cette échelle, seule la sonnette suit le rythme.

delay(500)0 ms…il compte, il ne fait RIEN d'autrependant delay : le monde continue, le processeur non

3. Trois fronts pour sonner : montant, descendant, changement

L' se déclenche sur un front, jamais sur un niveau : au front montant (passage de bas vers haut), au (de haut vers bas), ou au moindre changement (les deux). Le bon choix découle de l'information cherchée : compter des événements demande un front par événement ; mesurer une durée demande le début et la fin, donc le mode changement.

Un exemple de chaque. Le cran d' se compte au front montant — une fente, un front, un cran. La largeur d'une d' se mesure en mode changement : la routine note l'heure au front montant, calcule l'écart au . Deux fronts, deux instants, une durée — en , sans que la boucle ait à guetter quoi que ce soit.

4. Les règles d'or de la routine : courte, sourde, disciplinée

Règle une : courte. La routine note, compte, lève un — puis rend la main. Ni affichage (plus d'une milliseconde par message), ni attente, ni calcul lourd : pendant qu'elle tourne, la boucle est suspendue et les autres patientent. La place du travail, c'est la boucle ; la routine ne fait que constater, en quelques .

Règle deux : . modifiée par la routine et lue par la boucle doit être déclarée volatile, sans quoi le — qui optimise sans savoir qu'une routine écrit dedans — peut en garder une copie et ne jamais relire la vraie valeur. Règle trois, pour bientôt : les valeurs plus larges qu'un se copient en plusieurs fois, et cette copie doit être coupées le temps de deux lignes. Le geste complet arrive dans les leçons suivantes.

🧮 Exemple guidé : la preuve chiffrée contre la scrutation

Ton robot roule à 2 tours de roue par seconde, encodeurs de 20 fentes (un cran ≈ 1 cm). Sa boucle lit l'ultrason — jusqu'à 25 ms d'attente d'écho — et met 30 ms par tour. Compare ce que compte la scrutation et ce que compte l'interruption, chiffres à l'appui.

  1. 1.Le tour de boucle d'abord : jusqu'à 25 ms d'attente d'écho, plus la logique et l'affichage ≈ 30 ms par tour, soit 33 tours de boucle par seconde.
  2. 2.Les crans ensuite : 2 tours de roue/s × 20 fentes = 40 impulsions par seconde et par roue — une toutes les 25 ms, au niveau haut pendant ≈ 12 ms.
  3. 3.La scrutation : une lecture de broche par tour de boucle, donc au mieux 33 crans attrapés sur 40 — au moins 7 crans invisibles par seconde et par roue, soit ≈ 7 cm d'odométrie perdus chaque seconde.
  4. 4.L'interruption : elle sonne au front lui-même, latence ≈ 2 µs — quinze mille fois plus court que le tour de boucle — et zéro cran perdu, quelle que soit la charge de la boucle.

La scrutation perd au moins sept crans par seconde — sept centimètres d'odométrie envolés — pendant que l'interruption n'en perd aucun, pour deux microsecondes de dérangement. À la milliseconde, on scrute ; à la microseconde, on sonne. Ce rapport de mille est LA raison d'être du module.

🛠 Pratiquer sur l'établi

  1. 01Rater des en : la preuve chiffrée

    Monte la preuve : compte les crans d'un PAR — une lecture de à chaque tour de boucle — pendant que la boucle fait son vrai travail, mesure comprise. Tourne la roue de dix tours à la main : le compte affiché reste loin des 200 crans attendus. La scène de la cadence te montre pourquoi : la boucle tourne, mais entre deux passages elle a le dos tourné.

    sur l'établi
    toutes les 20 ms : trop vitede vieux échos se font chronométrer : valeurs folles

    📖 Termes de cette étape

Objectifs

  • +Voir ce que la rate
  • +Déclencher du code sur un
  • +Écrire une minimale
🧪 S'entraîner dans le bac à sable

Quiz de validation

À réussir pour valider la leçon

Réponds de mémoire, sans remonter la page : c'est l'effort de rappel qui grave le cours. Les trois bonnes réponses valident la leçon.

1. Que fait exactement le processeur quand l'interruption sonne ?

2. Pourquoi la scrutation perd-elle des impulsions brèves ?

3. Tu veux exécuter une routine à l'appui ET au relâchement d'un bouton. Quel déclencheur choisir ?

🧠 Ce qu'il faut retenir

  • 1.Une suspend le , exécute l', puis reprend — rien ne se perd.
  • 2.Une reste minuscule : on lève un , le travail attend la boucle.
  • 3.Les partagées avec une se déclarent .