Cos'è ElectroYou | Login Iscriviti

ElectroYou - la comunità dei professionisti del mondo elettrico

Convertire output_bit, del compilatore CCS su XC8 in C

Elettronica lineare e digitale: didattica ed applicazioni

Moderatori: Foto Utentecarloc, Foto Utenteg.schgor, Foto UtenteBrunoValente, Foto UtenteIsidoroKZ

0
voti

[1] Convertire output_bit, del compilatore CCS su XC8 in C

Messaggioda Foto Utentefloppinoo » 22 apr 2016, 9:43

Salve sono alle prese con la traduzione di un codice, che usa il modulo rfid 522, pero il mio problema è che la libreria è stata scritta usando il compilatore CCS :( , invece io devo usare il compilatore XC8 della Mplab, il codice lo preso da questa fonte:

http://simplesoftmx.blogspot.it/2015/04/pic-16f628a-16f627a-lector-rfid-rc522.html

Vorrei tradurlo in modo che possa girare sul compilatore XC8 delle Mplab X IDE, sempre in linguaggio C.
In pratica non so come tradurre queste due righe di codice da CCS in linee di codice riconoscibili al compilatore XC8, le due righe che non riesco a tradurre sono :

Codice: Seleziona tutto
1)   output_bit (MFRC522_SI, ( (ucAddr&0x80) == 0x80));
2)   ucResult|= (INT1) input (MFRC522_SO);



Qualcuno sa cosa fanno quelle due funzioni output_bit e input, e in particolare come posso
tradurle in linee di codice equivalenti C ma che vadano per il compilatore XC8 della Mplab IDE.

Se poi magari qualcuno comunque, dispone di progetti scritti per il modulo rfid 522 in c che vanno su XC8
ben venga, mi sarebbe davvero utile :ok:

Grazie anticipatamente O_/ delle risposte Francesco
Avatar utente
Foto Utentefloppinoo
205 1 3 7
Sostenitore
Sostenitore
 
Messaggi: 508
Iscritto il: 24 lug 2010, 9:26

1
voti

[2] Re: Convertire output_bit, del compilatore CCS su XC8 in C

Messaggioda Foto Utentemarioursino » 22 apr 2016, 10:51

Codice: Seleziona tutto
output_bit (MFRC522_SI, ( (ucAddr&0x80) == 0x80));


MFRC522_SI è un'etichetta definita 16f628a.c come segue

Codice: Seleziona tutto
#define MFRC522_SI PIN_B7


In XC8 utilizza

Codice: Seleziona tutto
#define MFRC522_SI RB7


Anche nel seguente caso

Codice: Seleziona tutto
ucResult |= (INT1) input (MFRC522_SO);


dovrai definire

Codice: Seleziona tutto
#define MFRC522_SO RB6


INT1 è un singolo bit e in XC8 non mi pare esista, visto come ucResult viene utilizzato puoi scrivere

Codice: Seleziona tutto
ucResult |= (input (MFRC522_SO)) & 0x01;
Avatar utente
Foto Utentemarioursino
5.687 3 9 13
G.Master EY
G.Master EY
 
Messaggi: 1598
Iscritto il: 5 dic 2009, 4:32

0
voti

[3] Re: Convertire output_bit, del compilatore CCS su XC8 in C

Messaggioda Foto Utentefloppinoo » 22 apr 2016, 11:10

Prima di tutto grazie marioUsino :ok: ... grazie a questi esempi ora ho chiarito molte parti del codice ccs, pero rimane un problema ;

XC8 non riconosce le funzioni output_bit ( o input ( penso siano funzioni del compilatore ccs

Codice: Seleziona tutto
output_bit (MFRC522_SI, ( (ucAddr&0x80) == 0x80));
.......
ucResult |= (input (MFRC522_SO)) & 0x01;


è giusto tradurre queste due righe semplicemnte in questo modo?


Codice: Seleziona tutto
MFRC522_SI= ((ucAddr&0x80) == 0x80);
.......
ucResult |= (MFRC522_SO) & 0x01;
Avatar utente
Foto Utentefloppinoo
205 1 3 7
Sostenitore
Sostenitore
 
Messaggi: 508
Iscritto il: 24 lug 2010, 9:26

1
voti

[4] Re: Convertire output_bit, del compilatore CCS su XC8 in C

Messaggioda Foto Utentemarioursino » 22 apr 2016, 11:55

floppinoo ha scritto:è giusto tradurre queste due righe semplicemnte in questo modo?

Codice: Seleziona tutto
MFRC522_SI= ((ucAddr&0x80) == 0x80);
.......
ucResult |= (MFRC522_SO) & 0x01;


Sì! (diciamo che sono sicuro al 95%)
Avatar utente
Foto Utentemarioursino
5.687 3 9 13
G.Master EY
G.Master EY
 
Messaggi: 1598
Iscritto il: 5 dic 2009, 4:32

0
voti

[5] Re: Convertire output_bit, del compilatore CCS su XC8 in C

Messaggioda Foto Utentefloppinoo » 22 apr 2016, 12:35

ok intanto grazie :D .... ora provo a smanettare ...
O_/
Avatar utente
Foto Utentefloppinoo
205 1 3 7
Sostenitore
Sostenitore
 
Messaggi: 508
Iscritto il: 24 lug 2010, 9:26

0
voti

[6] Re: Convertire output_bit, del compilatore CCS su XC8 in C

Messaggioda Foto Utentemarioursino » 22 apr 2016, 14:01

Diciamo che dell'assegnazione sono sicuro, non conosco bene cosa facciano le funzioni output_bit e input ma immagino che siano dei banali mapping tra pin e valore da leggere/scrivere.

Se hai altri dubbi chiedimi pure.
Avatar utente
Foto Utentemarioursino
5.687 3 9 13
G.Master EY
G.Master EY
 
Messaggi: 1598
Iscritto il: 5 dic 2009, 4:32


Torna a Elettronica generale

Chi c’è in linea

Visitano il forum: Nessuno e 40 ospiti