JMarc a écrit :Bonjour
utiliser le pointeur sfr
J'ai compris l'utilité de l'adressage avec le pointeur sfr avec l'exemple de l'effacement de la mémoire
Code : Tout sélectionner
MOVLW DRAM
MOVWF FSR
Effa CLRF INDF
INCF FSR,F ;RAZ RAM
BTFSS FSR,7
GOTO Effacela évite d'effacer la variable qui aurai servi de compteur
Je cherche un autre exemple pour arriver a comprendre son utilisation
merci
c'est un bon exemple pour assimiler le point FSR
NON il y a certes une notion de compteur mais pas au sens ou on l'habitude de l'entendre.
Les 2 premières lignes ,chargent l'adresse de la variable ici DRAM (L) littérale, qui si je me souviens bien est la 1er adresse de la banque zéro soit 0x20 donc FSR contient 0x20
la 3 eme ligne efface le contenu du pointeur cela peut
se traduire, efface le contenu de l'adresse du pointeur contenu dans FSRSFR contient 0x20 donc efface le contenu de 0x20 l'adresse 0x20 sera égale a zéro
la 5eme ligne incrémente le contenu de FSR , FSR= 0x20 '+1' ->FSR=0x21
si l'on fait CLRF INDF cela nous ramène a la ligne mais pas sur 0x20 mais sur 0x21 donc on efface 0x21 etc...
Pour un autre exemple, on va prendre les variables temps du décompteur 7segments c'est plus direct
Les variables:
ComptSu res 1 ;comteur seconde
ComptSd res 1
ComptMu res 1 ;compteur minute
ComptMd res 1
Pour que cela fonctionne, il faut quand même une seule contrainte, c'est que c'est variables se
suivent c'est le cas dans le décompteur
Alors dans un premier temps on va voir uniquement le fonctionnement du déplacement avec incrémentation
-Il faut charger le pointeur de la 1er variable ici ComptSu
on charge bien l'adresse de ComptSu dans W car si on voulait charger son contenu dans W on aurait fait
si l'on fait
le pointeur ne sera plus sur ComptSu mais sur ComptSm c'est la même chose d'avec l'adresse 0x20 qui passe a 0x21
et de même a chaque INCF SFR on passe a l'adresse suivante.
Voila pour le déplacement, maintenant comment modifier le contenu du pointeur donc le contenu dans notre 1er cas de ComptSu
pointeur SFR sur ComptSu
si je fais
cela veut dire charge w de la lettre A puis charge le contenu de W dans l'adresse pointer par SFR donc le contenu de l'adresse ComptSu et elle contiendras 'A'
Voila les pointeurs
si question ......