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

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

4.4 Evitons le piègeNous allons encore une fois modifier notre programme en remplaçant la ligneorg 0x850; adresse de la suite du programmeparorg 0x7FF; adresse de la suite du programmeNous allons donc sauter juste avant la limite de la page, ce qui fait que la premièreinstruction suivant l’étiquette « saut2 » sera en page 0, tandis que la suite du programme seraen page 1. Nous nous trouvons donc au lieu de débordement de page d’un programme.Recompilons notre programme et analysons la fenêtre <strong>des</strong> résultats. Nous constatons alorsqu’il n’y a plus qu’un seul warning, correspondant au second saut. Ceci est logique, carl’étiquette « saut2 » est maintenant située dans la même page (0) que le premier « goto ».Faisons donc tourner notre programme en pas-à-pas. Il semble maintenant fonctionnertout à fait correctement. Quel est donc ce mystère ?En fait, comme toujours, ce n’est que pure logique. Il y a 3 phases à distinguer dans lefonctionnement de ce petit bout de code.- Le premier saut (goto saut1) s’effectue sans problème, puisque l’adresse de <strong>des</strong>tination(0x7FF) est située dans la page 0, les bits 3 et 4 de PCLATH étant à ‘0’, l’adresse de<strong>des</strong>tination obtenue est bien 0x7FF- Ensuite, en avançant en pas à pas, on passe à la page2. Notez en passant 2 choses. PCL estremis à 0, ce qui est logique, et PCLATH voit son contenu inchangé. C’est ici qu’il ne fautpas tomber dans le piège :31

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

Saved successfully!

Ooh no, something went wrong!