bonjour à vous et meilleurs voeux pour 2008
je pensais avoir tout compris sur la création de tableaux sur PIC mais ....
Après bien des recherches sur le net sur la création de ces tableaux, je ne comprend pas ce qui se passe dans mon programme.
Ceci est un programme d'affichage sur LCD, le choix des mots à afficher
est fonction de MOTx .
Il existe 2 tableaux l'un à l'adresse 0x600 et l'autre à 0x900.
debutmovlw 0x06movwf PCLATHmovlw 0call MOT6;clrf PCLATHmovwf PORTBloop goto loop
Org 0x600
MOT2 addwf PCL,1
DT "Bienvenue",0
MOT3 ADDWF PCL, 1
DT "ALARM(0) CODE(1)",0
MOT4 ADDWF PCL, 1
DT "PROG.TEL(2)",0
Org 0x900
MOT5 ADDWF PCL, 1
DT "ALARME :",0
MOT6 ADDWF PCL, 1
DT "MAR(1) ANNUL(2)",0
MOT7 addwf PCL,1
DT "Votre Code puis#",0
Si je choisis de mettre un tableau entre 0x00 et 0x700 d'adresse l'appel et le retour du tableau se fait bien, l'affichage sur PORTB est OK, je reste dans la boucle LOOP.
Par contre si je mets un tableau à partir de 0x800 le retour à LOOP se fait mais le pointeur de programme continue à scruter le reste de la mémoire programme !
Je suis obligé de mettre PCLATH = 0x00 au retour du MOT lu (clrf PCLATH dans le programme ci-dessus).
Quelle est cette raison svp ?
Merci de votre aide
Arzew
-----