Iterruption Service Routine (ISR)
L'ISR (Interruption Service Routine) est un sous-programme qui est exécuté lorsqu'une interruption est déclenchée. Lorsqu'une interruption se produit, le microcontrôleur arrête temporairement l'exécution du programme principal et passe à l'exécution de l'ISR correspondant. L'ISR traite l'interruption et, une fois terminé, le microcontrôleur reprend l'exécution du programme principal.
Le fonctionnement est le suivant :
- Configuration des interruptions : Les interruptions sont généralement configurées par le programmeur en utilisant les registres de configuration de l'interrupteur ou en utilisant les bibliothèques d'interface de programmation (API) fournies par le constructeur du microcontrôleur.
- Déclenchement de l'interruption : Lorsqu'une source d'interruption se produit, par exemple une entrée du bouton, un événement sur une horloge, un événement sur un port série, etc., l'interrupteur génère un signal d'interruption qui est transmis au microcontrôleur.
- Traitement de l'interruption : Lorsque le microcontrôleur reçoit le signal d'interruption, il interrompt temporairement l'exécution du programme principal et passe à l'exécution de l'ISR correspondant. L'ISR traite l'interruption en effectuant des opérations telles que la mise à jour des variables globales, l'envoi d'un message à une autre partie du système, etc.
- Retour au programme principal : Une fois que l'ISR a terminé son traitement de l'interruption, le microcontrôleur reprend l'exécution du programme principal là où il s'était arrêté.
L'objectif principal d'un ISR est de traiter rapidement une source d'interruption afin de permettre au programme principal de continuer à s'exécuter en toute transparence. Les ISR sont utiles pour les applications temps réel pour lesquelles une réponse rapide aux événements est nécessaire.