Les interrupteurs
Généralités
Ca y est, nous y sommes, nous entamons la notion qui va changer votre vie de programmateur. Jusqu'ici, les fonctions étaient appelées par le programme lui-même. Une interruption est une fonction qui se réalise lorsque un évènement se produit, et non lorsque le programme le décide. Les évènements conduisant à une interruption dépendent du microcontrôleur. Au moment de l'appel de l'interruption, le programme s'arrête. Le microcontrôleur sauvegarde l'adresse de la dernière instruction exécutée ainsi que les registres importants. L'exécution de l'interruption commence. A la fin de sa réalisation, les registres importants reprennent les états qu'ils avaient avant l'appel, le programme reprend à l'endroit où il s'était arrêté.
Principe:
Le fonctionnement par interruptions sur un microcontrôleur permet à celui-ci d'exécuter une tâche(programme principal) qui peut être interrompue par un événement. Le processeur doit alors exécuter une tâche(sous-programme) associée à cette source d'interruption. Quand la tâche est exécutée, le processeur revient à sa tâche principale.
Le PIC 16F84
Chaque microcontrôleur fonctionne différemment lors d'une interruption. De plus, chaque langage C est différent face à ces mêmes interruptions. Nous allons donc assez rapidement analyser le comportement du PIC 16F84, et voir comment gérer cette ressource avec le C que nous utilisons depuis le début. Le PIC 16F84 possède 4 sources d'interruption :
Changement d'état des pattes RB4 à RB7;
Débordement du timer (passage de 0XFF à 00);
Front sur la patte INT (Cette patte est aussi la patte RB0). Le sens du front est déterminé par certains bits du registre option;
Fin d'écriture dans la EEprom du PIC (partie de la mémoire qui ne s'efface pas en cas de coupure d'alimentation).
La gestion des interruptions passe par 3 opérations:
Déclaration du fichier utile à la gestion