Pagina 1 di 1

errore "Operand contains unresolvable labels or is too.."

MessaggioInviato: 11 ott 2013, 9:48
da mros
Buongiorno a tutti

l'errore in oggetto viene generato dall'istruzione:

BCF PORTB,PB

dove PB è una variabile (immagino sia proprio questo il problema).
Siccome l'istruzione di cui sopra è parte integrante di un'interrupt e la variabile PB viene impstata nel main del programma non saprei come uscirne.
In pratica sulla porta B ho collegato dei led che si dovrebbero accedere uno alla volta a partire dal bit impostato nel main.

avete suggerimenti da darmi?
grazie

Re: errore "Operand contains unresolvable labels or is too..

MessaggioInviato: 11 ott 2013, 10:12
da c1b8
Nella BCF il bit da spegnere non può essere una variabile ma deve essere una costante.
Attento perché il compilatore risolve quella variabile come costante (utilizzando l'indirzzo della variabile) e se il risultato è compreso tra 0 e 7 non ti da errore, ma è un errore perché non si comporterà mai come desiderato.
Potresti sostituire la BCF con una AND, naturalmente dovrai impostare opportunamente il valore di PB.

Re: errore "Operand contains unresolvable labels or is too..

MessaggioInviato: 11 ott 2013, 10:24
da mros
Ciao...sembrerebbe che sei il mio angelo custode ! :D

in che modo potrei sostituire AND con BCF?

rosario

Re: errore "Operand contains unresolvable labels or is too..

MessaggioInviato: 11 ott 2013, 10:33
da c1b8
sostituire la BCF con la AND, non il contrario.

Supponiamo di voler spegnere il bit 3 di PORTB, dovrai caricare nella variabile PB il valore (binario) 0b11110111.
Ovvero porre tutti i bit a 1 tranne il 3.
Devi quindi sostituire la BCF con:
Codice: Seleziona tutto
     movf    PB, 0
     andwf   PORTB, 1

Re: errore "Operand contains unresolvable labels or is too..

MessaggioInviato: 11 ott 2013, 14:08
da mros
...la semplicità è una dote di pochi....

grazie 1000

rosario