Les interruptions
- Exemple 1 de programme d'interruption avec le Raspberry Pi Pico et MicroPython
- Exemple 2 de programme d'interruption avec le Raspberry Pi Pico et MicroPython
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 le Raspberry Pi Pico, toutes les broches du GPIO peuvent être utilisées en interruption.
|
On peut choisir le mode de détection de l’interruption :
|
Exemple 1 de programme d'interruption avec le Raspberry Pi Pico et MicroPython |
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.
|
Raspberry Pi Pico MicroPython interruption externe broche
Programme avec interruption sur front montant de la broche GP18
Cette version est à éviter car la fonction interruption est beaucoup trop longue.
|
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 le Raspberry Pi Pico et MicroPython |
Fonctionnement identique à l'exemple 1 mais avec un temps d’exécution le plus court possible dans la fonction fct_interruption
Raspberry Pi Pico MicroPython interruption externe broche
Programme avec interruption sur front montant de la broche GP18
|
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 d'aide HTML gratuit