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
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
Lançons la compilation F10.<br />
Calculer le temps total :<br />
Le temps total est <strong>de</strong> :<br />
2 cycles pour l’appel <strong>de</strong> la sous routine<br />
1 cycle pour le reset <strong>de</strong> la variable<br />
256 cycles pour les 256 décrém<strong>en</strong>tations<br />
510 cycles pour les 255 goto<br />
2 cycles pour le return<br />
Soit un total <strong>de</strong> 771 cycles. Nous sommes loin <strong>de</strong>s 1 000 000 cycles nécessaires.<br />
Nous allons rallonger notre routine <strong>en</strong> réalisant une secon<strong>de</strong> boucle qui va forcer la première<br />
boucle à s’éxécuter 256 fois.<br />
Déclarons une nouvelle variable.<br />
cmpt1 : 1<br />
cmpt2 : 1<br />
Ecrivons les <strong>de</strong>ux boucles imbriquées<br />
tempo<br />
clrf compt2<br />
boucle2<br />
clrf compt1<br />
boucle1<br />
<strong>de</strong>cfsz compt1,f<br />
goto boucle1<br />
<strong>de</strong>cfsz compt2,f<br />
goto boucle2<br />
return<br />
Quelle est la temporisation obt<strong>en</strong>ue ?<br />
Durée <strong>de</strong> la boucle 1 :<br />
256+510 + 1 (<strong>de</strong>cfsz) + 2 (goto boucle2) = 769 cycles.<br />
On répète cette boucle 256 fois avec <strong>en</strong> plus l’instruction clrf. 256*770. On arrive à 196864<br />
cycles machines. Or, on cherche à avoir 5 fois plus <strong>de</strong> cycles.<br />
Nous pouvons soit recréer une troisième variable qui permet <strong>de</strong> réexécuter cette boucle 5 fois, ou<br />
on rajoute <strong>de</strong>s instructions nop (5 instructions nop) dans la boucle 1.<br />
Ainsi,<br />
tempo<br />
clrf<br />
boucle2<br />
clrf<br />
boucle1<br />
nop<br />
compt2<br />
compt1<br />
Programmes d’interruptions Page 4 Formation Thales EN3