Vai al contenuto
PLC Forum


Pic18 E Banchi Ram


Matik

Messaggi consigliati

Salve a tutti,

con il pic18f452 ho terminato il primo banco di memoria (127 byte disponibili) e quindi sono costretto ad usare anche un'altro banco da 256 byte. Ho capito che per l'indirizzamento posso usare l'istruzione LBSR e poi gestirmi le chiamate con la "A" delle istruzioni ma il mio problema principale è questo:

usando l'istruzione MOVFF in teoria il BSR è ignorato perchè l'indirizzamento dell'istruzione è già a 12 bit.

In realtà questo non mi si verifica. Forse con un piccolo esempio mi spiego meglio:

movlb 1; seleziono banco1

movlw 100;e carico

movwf gradi; nella variabile un valore a scelta

movlw 0; porto a zero l'accumulatore per scrupolo

movff gradi,numero; sposto il valore di gradi nella variabile numero che è nel banco 0

call visuanumero; e visualizzo il contenuto di "numero"

a questo punto il valore di "numero" è 1 mentro mi aspettavo 100. Se invece faccio

movf gradi,W

movwf numero,A

call visuanumero

allora in "numero" mi ritrovo il valore di partenza 100. Ma perchè devo passare per l'accumulatore? non dovrebbe essere diretto come da data sheet o mi sfugge qualcosa?

Matik

Link al commento
Condividi su altri siti


Crea un account o accedi per commentare

Devi essere un utente per poter lasciare un commento

Crea un account

Registrati per un nuovo account nella nostra comunità. è facile!

Registra un nuovo account

Accedi

Hai già un account? Accedi qui.

Accedi ora
×
×
  • Crea nuovo/a...