28.02.2015 Views

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

SHOW MORE
SHOW LESS

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

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

Saved successfully!

Ooh no, something went wrong!