Cos'è ElectroYou | Login Iscriviti

ElectroYou - la comunità dei professionisti del mondo elettrico

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

Raccolta di codici sorgenti

Moderatore: Foto UtentePaolino

0
voti

[1] errore "Operand contains unresolvable labels or is too.."

Messaggioda Foto Utentemros » 11 ott 2013, 9:48

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
Avatar utente
Foto Utentemros
10 1 5
Frequentatore
Frequentatore
 
Messaggi: 131
Iscritto il: 28 giu 2010, 9:23

0
voti

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

Messaggioda Foto Utentec1b8 » 11 ott 2013, 10:12

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.
Fabio
Avatar utente
Foto Utentec1b8
3.595 3 8 13
G.Master EY
G.Master EY
 
Messaggi: 1770
Iscritto il: 15 gen 2009, 15:23

0
voti

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

Messaggioda Foto Utentemros » 11 ott 2013, 10:24

Ciao...sembrerebbe che sei il mio angelo custode ! :D

in che modo potrei sostituire AND con BCF?

rosario
Avatar utente
Foto Utentemros
10 1 5
Frequentatore
Frequentatore
 
Messaggi: 131
Iscritto il: 28 giu 2010, 9:23

0
voti

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

Messaggioda Foto Utentec1b8 » 11 ott 2013, 10:33

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
Fabio
Avatar utente
Foto Utentec1b8
3.595 3 8 13
G.Master EY
G.Master EY
 
Messaggi: 1770
Iscritto il: 15 gen 2009, 15:23

0
voti

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

Messaggioda Foto Utentemros » 11 ott 2013, 14:08

...la semplicità è una dote di pochi....

grazie 1000

rosario
Avatar utente
Foto Utentemros
10 1 5
Frequentatore
Frequentatore
 
Messaggi: 131
Iscritto il: 28 giu 2010, 9:23


Torna a Firmware e programmazione

Chi c’è in linea

Visitano il forum: Nessuno e 3 ospiti