Les interruptions
- Exemple 1 de programme d'interruption avec l'ESP32
- Exemple 2 de programme d'interruption avec l'ESP32
Une interruption, comme son nom l’indique, consiste à interrompre momentanément le programme principal exécuté pour effectuer un autre travail. Quand cet autre travail est terminé, on retourne à l’exécution du programme principal à l’endroit exact où il l’avait été laissé.Cet autre travail s’appelle le programme d’interruption. Il est très important que le programme d’interruption ait un temps d’exécution le plus court possible. On ne fera donc aucun calcul compliqué et aucun appel à des fonctions longues. Il existe plusieurs sources d’interruption :
|
Exemple : Avec l'interruption matérielle, il est inutile de surveiller en permanence l'état d'une broche d'entrée sur laquelle vous avez raccordé un bouton poussoir. Lorsqu’un changement d'état est détecté, le programme d'interruption est exécutée.
Pour l'ESP32, toutes les broches du GPIO peuvent être utilisées en interruption, à l'exception de GPIO 6 à GPIO 11.
|
On peut choisir le mode de détection de l’interruption :
|
Exemple 1 de programme d'interruption avec l'ESP32 |
A chaque action sur le bouton poussoir (front montant), la LED change d'état même si le programme principal est occupé à une autre tâche.
|
ESP32 Micropython programme avec interruption sur front montant de la broche GPIO26
|
bp.irq(trigger=Pin.IRQ_RISING, handler = fct_interruption)
Spécifie la fonction à appeler lorsqu'une interruption externe survient. La fonction fct_interruption serra appelée chaque fois qu'un front montant est détecté sur le bouton poussoir bp (GPIO26)
Exemple 2 de programme d'interruption avec l'ESP32 |
Fonctionnement identique à l'exemple 1 mais avec un temps d’exécution le plus court possible dans la fonction fct_interruption
|
ESP32 Micropython programme avec interruption sur front montant de la broche GPIO26
|
impulsion = True
La variable impulsion de type booléen passe à True quand on lance le programme d'interruption (fonction fct_interruption ) et repasse à False quand il est terminé.
Cette variable est utilisée dans le programme principal pour allumer ou éteindre la Led, afficher du texte sur la console.
Cela permet d'avoir un temps d’exécution le plus court possible dans la fonction fct_interruption
Créé avec HelpNDoc Personal Edition: Générateur de documentation et EPub facile