TP n° 1 Prise en main de MPLAB 6 - LIAS
TP n° 1 Prise en main de MPLAB 6 - LIAS
TP n° 1 Prise en main de MPLAB 6 - LIAS
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
movwf cmpt1<br />
boucle1<br />
nop<br />
nop<br />
nop<br />
nop<br />
nop<br />
<strong>de</strong>cfsz cmpt1,f<br />
goto boucle1<br />
<strong>de</strong>cfsz cmpt2,f<br />
goto boucle2<br />
return<br />
<strong>en</strong>d<br />
Nous allons <strong>main</strong>t<strong>en</strong>ant procé<strong>de</strong>r à une interruption pour piloter l’affichage <strong>de</strong>s LEDS.<br />
Mécanisme général d’une interruption.<br />
Une routine d’interruption peut être considérée comme un sous programme décl<strong>en</strong>ché par<br />
l’apparition d’un évènem<strong>en</strong>t spécifique.<br />
Le programme se déroule normalem<strong>en</strong>t.<br />
L’évènem<strong>en</strong>t survi<strong>en</strong>t<br />
Le programme achève l’instruction <strong>en</strong> cours <strong>de</strong> traitem<strong>en</strong>t<br />
Le programme traite l’interruption.<br />
L’évènem<strong>en</strong>t qui décl<strong>en</strong>che l’interruption doit remplir <strong>de</strong>ux conditions :<br />
- l’évènem<strong>en</strong>t doit être dans la liste <strong>de</strong>s évènem<strong>en</strong>ts susceptibles <strong>de</strong> provoquer une<br />
interruption<br />
- l’utilisateur doit avoir autorisé l’interruption, c'est-à-dire avoir signalé que<br />
l’évènem<strong>en</strong>t <strong>en</strong> question <strong>de</strong>vait générer une interruption.<br />
Mécanisme d’interruption sur un PIC<br />
Toute interruption provoque une sauvegar<strong>de</strong> <strong>de</strong> l’adresse PC (c'est-à-dire l’adresse <strong>en</strong> cours du<br />
programme au mom<strong>en</strong>t ou est interv<strong>en</strong>u l’interruption) dans une pile interne à 8 niveau ‘pile<br />
utilisé pour les sous programmes) et l’exécution du programme est routé à l’adresse 0x04 <strong>de</strong> la<br />
mémoire FLASH. Cette adresse est réservée pour les interruptions.<br />
Dans le cas où l’utilisateur utilise plusieurs types d’interruption, il doit définir par une batterie <strong>de</strong><br />
test quelle est l’interruption qui a décl<strong>en</strong>chée le déroutem<strong>en</strong>t du programme.<br />
Le PIC ne sauvegardant que l’adresse du PC, c’est à l’utilisateur <strong>de</strong> sauvegar<strong>de</strong>r les registres<br />
principaux (Status et W registre).<br />
Enfin, une interruption ne peut pas être interrompu par une autre interruption sauf si le<br />
programmateur remet le flag GIE à un trop tôt. Les interruptions sont remises automatiquem<strong>en</strong>t<br />
<strong>en</strong> service après le retour dans la boucle principale (retfie).<br />
Programmes d’interruptions Page 7 Formation Thales EN3