PIC: long call et table

flagyg Messages postés 50 Date d'inscription samedi 1 septembre 2001 Statut Membre Dernière intervention 20 septembre 2006 - 2 mars 2006 à 13:13
phenojeff Messages postés 87 Date d'inscription jeudi 10 octobre 2002 Statut Membre Dernière intervention 4 avril 2008 - 6 mars 2006 à 03:23
Bonjour,

J'appelle une table qui se trouve à l'adresse 0x700 depuis ~0x20. J'ai remarqué que ça ne jouait plus car la table me renvoie nimporte ou dans le programme. je ne sais pas comment faire..merci d'avance!
J'utilise un PIC 16F873

ORG 0x020

call Table

ORG 0x700

Table
addwf PCL, F
retlw blabla
retlw blabla
...
...

1 réponse

phenojeff Messages postés 87 Date d'inscription jeudi 10 octobre 2002 Statut Membre Dernière intervention 4 avril 2008
6 mars 2006 à 03:23
Allo

start
clrf nombre ; effacer nombre
loop
movf nombre , w ; charger nombre
call Table ; prendre le carré du nombre
incf nombre , f ; incrémenter nombre
btfss nombre , 4 ; tester si nombre >15
goto loop ; non, nombre suivant
goto start ; oui, on recommence à 0

repere
ORG (repere+31)& 0xFE0 ; adresse du tableau
carre


addwf PCL , f ; ajouter w à PCL


retlw .0 ; carré de 0 = 0
retlw .1 ; carré de 1 = 1
retlw .4 ; carré de 2 = 4
retlw .9 ; carré de 3 = 9
retlw .16 ; carré de 4 = 16
retlw .25 ; carré de 5 = 25
retlw .36 ; carré de 6 = 36
retlw .49 ; carré de 7 = 49
retlw .64 ; carré de 8 = 64
retlw .81 ; carré de 9 = 81
retlw .100 ; carré de 10 = 100
retlw .121 ; carré de 11 = 121
retlw .144 ; carré de 12 = 144
retlw .169 ; carré de 13 = 169
retlw .196 ; carré de 14 = 196
retlw .225 ; carré de 15 = 225

a++
0
Rejoignez-nous