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.

IF BIT3 ; si page 1 ou 3bsf PCLATH , 3 ; b3 de PCLATH = 1ELSE; sinonbcfPCLATH , 3 ; b3 de PCLATH = 0ENDIFIF BIT4 ; si page 2 ou 3bsfPCLATH , 4 ; b4 de PCLATH = 1ELSE; sinonbcfPCLATH , 4 ; b4 de PCLATH = 0ENDIFgoto (ADRESSE & 0x7FF | PICI); adresse simuléeendmHoulà ! J’en vois qui paniquent. Restez cool, j’explique ligne par ligne, c’est toutsimple. Vous allez commencer à voir le véritable intérêt <strong>des</strong> macros. Plus qu’un simpletraitement de texte, c’est, cette fois, un véritable instrument anti-erreurs.GOTOX macro ADRESSE; saut inter-pageIci, tout simplement on déclare la macro. Cette macro se nomme donc GOTOX, et ellereçoit en argument ADRESSE, qui est l’adresse de <strong>des</strong>tination du saut. Donc, pour un sautinter-page vers l’adresse « saut2 », on utilisera donc : « GOTOX saut2 »local BIT4 = (ADRESSE & 0x1000) ; voir bit 12Dans cette ligne, nous trouvons d’abord la directive « LOCAL », qui signifie que la valeursera recalculée à chaque appel de la macro. <strong>La</strong> valeur « BIT4 » sera donc différente à chaquefois que vous appelerez « GOTOX ». C’est logique.Vient derrière le calcul de « BIT4 ». On pourra dire que BIT4 est égal à l’adresse de<strong>des</strong>tination AND 0x1000, soit B’1000000000000 ‘. Donc, BIT4 vaudra 0 si l’adresse de<strong>des</strong>tination tient sur 12 bits, donc inférieure à 0x1000, donc en page 0 ou 1. C’est à dire si lebit 4 de PCLATH devra être mis à « 0 » pour sauter. L’adresse de <strong>des</strong>tination a dans ce casson bit 12 à « 0 ».local BIT3 = (ADRESSE & 0x0800) ; voir bit 11Strictement identique pour une adresse qui comporte son bit 11 à 0. Donc, ceci nouspermet de savoir si l’adresse de <strong>des</strong>tination se situe ou non en page 1 et 3. Reportez-vous autableau chapitre 4.5local ICIICI; adresse couranteIci, nous déclarons simplement une étiquette locale. Cette déclaration est suivie parl’étiquette en elle-même, en première colonne, comme il se doit. Ceci nous permet de savoiroù, et plus précisément dans quelle page, la macro « GOTOX » a été appelée. <strong>La</strong> directive« local » est indispensable, car si on appelle plusieurs fois la macro « GOTOX », « ICI » seraà chaque fois à un endroit différent.local PICI = (ICI+2 & 0x1800); page du saut35

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

Saved successfully!

Ooh no, something went wrong!