Académique Documents
Professionnel Documents
Culture Documents
Supposons que vous êtes entrain de travailler et que soudain le téléphone sonne. Allez-vous
répondre ?
• Vous pouvez choisir de ne pas répondre au téléphone qui est entrain de vous
interrompre (ignorer l’appel)
• Ou bien vous pouvez répondre (handle) à l’interruption et ensuite continuer votre
travail (retourner à ce que vous faisiez avant de répondre)
Une interruption dans un microcontrôleur est une ressource puissante, c’est la capacité de
suspendre l’exécution du programme en cours dans le but de traiter (handle) quelque chose
d’autre qui nécessite l’attention du CPU.
Pour l’Atmega328P ce quelque chose d’autre qui peut interrompre le microcontrôleur peut
être une ou plusieurs parmi 26 sources d’interruption
• Il faut tout d’abord valider les interruptions (car le microcontrôleur les ignore par
défaut)
• Choisir lesquelles parmi les 26 sources d’interruption le microcontrôleur va traiter
• Lorsque l’interruption a lieu, le microcontrôleur a besoin de savoir :
✓ Qu’est-ce qu’il va faire (comment traiter cette interruption) et où va-t-il
aller pour traiter cette interruption
✓ Qu’est ce que le microcontrôleur faisait et ou était-il avant l’interruption
(ceci est important puisqu’après le traitement de l’interruption le
microcontrôleur doit revenir à sa tache précédente)
En résumé :
25
Les interruptions
Remarque importante :
Seul le contenu du registre PC est stockée dans la pile lors d’une interruption. Pour
sauvegarder d’autres informations importantes dans la pile telles que SREG et les GPRs il
faudra le faire manuellement par les instructions PUSH et POP.
Pour l’Atmega328P :
• 26 sources d’interruptions
• Chaque source d’interruption possède son vecteur d’interruption
• Chaque source d’interruption doit être validée individuellement à l’aide d’un bit à
l’intérieur d’un registre I/O
• Même lorsque le bit spécifique à une interruption est validé, le bit de validation
globale des interruptions (bit I du SREG)doit être validé.
• Important : lorsqu’une interruption a lieu, le bit I de SREG est mis à ‘0’
(interruptions désactivées) ceci dans le but d’exécuter seulement une seule routine
d’interruption à la fois, les interruptions emboitées (nested interrupts) peut être
utilisées si on repositionne manuellement le bit I de SREG à ‘1’ à l’intérieur du sous-
programme d’interruption.
• Après achèvement du sous-programme d’interruption on doit utiliser l’instruction
RETI qui a deux actions :
✓ Restitue l’adresse de retour (PC+1) dans le PC
✓ Réactive le bit I de SREG pour permettre à nouveau touts les interruptions
26
Les interruptions
27
Les interruptions
28