30.07.2015 Views

La programmation des PICs - Seconde partie

La programmation des PICs - Seconde partie

La programmation des PICs - Seconde partie

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

5.2.2 Mise en service <strong>des</strong> interruptions périphériquesNous avons vu que les interruptions périphériques sont tributaires du bit de validationgénérale <strong>des</strong> interruptions périphériques PEIE. Voici donc les 3 étapes nécessaires à la miseen service d’une telle interruption :1) Validation du bit concernant l’interruption dans le registre concerné (PIE1 ou PIE2)2) Validation du bit PEIE (PEripheral Interrupt Enable bit) du registre INTCON3) Validation du bit GIE qui met toutes les interruptions en service.Notez donc que la mise en service de PEIE ne vous dispense pas l’initialisation du bitGIE, qui reste de toute façon prioritaire.Cette architecture vous permet donc de couper toutes les interruptions d’un coup(effacement de GIE) ou de couper toutes les interruptions périphériques en une seuleopération (effacement de PEIE) tout en conservant les interruptions primaires. Ceci vousdonne d’avantage de souplesse dans le traitement <strong>des</strong> interruptions, mais complique un petitpeu le traitement.5.3 Les registres PIE1, PIE2, PIR1 et PIR2Vous avez vu que ces composants disposent de plus de sources d’interruptions que ne peuten gérer le registre INTCON. Donc, les autorisations d’interruptions vont se trouver dansd’autres registres. Ces registres sont PIE1 et PIE2. Les flags correspondants se trouvent quantà eux dans les registres PIR1 et PIR2.Voici le nom de chaque bit de ces registresRegistre Adresse B7 B6 B5 B4 B3 B2 B1 B0PIE1 0x8C PSPIE ADIE RCIE TXIE SSPIE CCP1IE TMR2IE TMR1IEPIR1 0x0C PSPIF ADIF RCIF TXIF SSPIF CCP1IF TMR2IF TMR1IFPIE2 0x8D N.I. Réservé N.I. EEIE BCLIE N.I. N.I. CCP2IEPIR2 0x0D N.I. Réservé N.I. EEIF BCLIF N.I. N.I. CCP2IFVous remarquerez que les 2 registres d’autorisations (PIE1 et PIE2) se trouvent en banque1, tandis que les registres de flags (PIR1 et PIR2) se trouvent en banque 0.Remarquez aussi qu’il y a quelques bits non implémentés, qui donneront toujours « 0 »s’ils sont lus, mais aussi 2 bits réservés qu’il est impératif de maintenir à « 0 » afin deconserver toute compatibilité future.Les bits <strong>des</strong> registres PIEx permettent d’autoriser les interruptions correspondantes, maisrappelez-vous que ces bits ne sont opérationnels que si le bit PEIE du registre INTCON estmis à 1. Dans le cas contraire, toutes ces interruptions sont invalidées.Pour qu’une <strong>des</strong> interruptions décrites ici soit opérationnelle, je rappelle qu’il faut donc latriple condition suivante :- Le bit GIE du registre INTCON doit être mis à 145

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!