Errore di compilazione

8 Anni 1 Settimana fa #1 da Alex73
Errore di compilazione è stato creato da Alex73
Salve a tutti,
sto facendo un po' di esperimenti, mi piacerebbe realizzare un orologio utilizzando il PCF8563 che supporta anche Freedom II, se riesco a fare questo vorrei ampliare il progetto....... vedremo. Il problema che mi si pone è che includendo il file "PDF8563.h"
e "PDF8563.c" il compilatore mi da il seguente errore:

C:/LTlib_v_4.0.3/src\PCF8563.c:223: error: type redeclared
C:/LTlib_v_4.0.3/src\PCF8563.c:223: error: conflicting declarations for variable "RTCC_get_day_of_the_week" (C:/LTlib_v_4.0.3/src\PCF8563.c:223)

Dopo tentativi di ogni tipo ed in base ad un ragionamento che non riuscirei a riportare ho cambiato la riga 223 dove mi viene segnalato l'errore nel file "PCF8563.c" da :

unsigned char RTCC_get_day_of_the_week (void){

a:

signed char RTCC_get_day_of_the_week (void){

e la compilazione termina senza errori.

Che problemi possono esserci?

Ciao a tutti,
Alex

Si prega Accedi o Crea un account a partecipare alla conversazione.

  • Alex73
  • Avatar di Alex73
  • Senior Member
  • Senior Member
Di più
8 Anni 1 Settimana fa #2 da Mauro Laurenti
Risposta da Mauro Laurenti al topic Errore di compilazione
Salve Alex,

stavo per rispondere all'altro thread.

Effettivamente ti sei scontrato contro un bug che ho trovato tempo fa.
L'ho corretto nella libreria 4.0.4 ma non e' ancora online.

L'errore discende dal fatto che il prototipo di funzione dentro il file PCF8563.h e la sua implementazione nel file PCF8563.c sono differenti. In particolare differiscono nel tipo di valore restituito.

La correzione che hai fatto allinea le cose e non hai piu' l'errore ma in realta' dovresti cambiare il file .h.

entrambe le funzioni devono avere il tipo del valore restituito unsigned char e non signed char.

Saluti,

Mauro

Si prega Accedi o Crea un account a partecipare alla conversazione.

  • Mauro Laurenti
  • Avatar di Mauro Laurenti
  • Moderator
  • Moderator
Di più
8 Anni 1 Settimana fa #3 da Alex73
Risposta da Alex73 al topic Errore di compilazione
Salve Mauro,
oltre che efficiente questa volta sei stato anche più veloce della luce! Grazie.
Per modificare PCF8563.h il mio pc tenta di avviare il visual studio (comincia ad essere troppo complesso)..... se a me non interessa gestire i giorni della settimana può andar bene se modifico il file PCF8563.c ?
Approfitto per chiedere un'altra cosa, seguendo gli esempi si "xc8 step by step" quando "cito" la funzione "PCF_initialize(20,400)" per inizializzare il modulo I2C ho altri errori, ho notato che utilizzando la funzione "RTCC_initialize(400)" tutto viene compilato correttamente, però non vado a dare alcuna indicazione sulla frequenza di clock del circuito. Sai cosa può essere successo?
Grazie,

Alex

Si prega Accedi o Crea un account a partecipare alla conversazione.

  • Alex73
  • Avatar di Alex73
  • Senior Member
  • Senior Member
Di più
8 Anni 1 Settimana fa #4 da Mauro Laurenti
Risposta da Mauro Laurenti al topic Errore di compilazione
Per aprire il file .c basta che lo selezioni e premi il tasto destro. Apri con...e scegli un editor semplice.

Per la funzione di inizializzazione di periferiche I2C con LTlib devi mettere solo il bit rate.
La frequenza e' specificata ora nel file LTlib.h che devi includere in testa a tutto.

Fai attenzione che LTlib non richiede piu' le librerie Microchip per cui le puoi eliminare.
Prima della libreria PCF8563 devi includere al posto di i2c.h la libreria module_I2C.h e il module_I2C.c
Se non lo fai viene generato un errore da parte della libreria e ti viene notificato.

Questi cambiamenti ti possono pero' complicare la vita iniziale per cui per seguire il testo XC8 Step by Step puoi considerare di usare la vecchia libreria per PIC18 3.x.x.

Per LTlib puoi vedere gli esempi per Freedom III che puoi ora scaricare tra gli esempi del testo XC8 STep by Step.
Il PIC18F46K22 e' leggermente diverso dal PIC18F4550 ma gli esempi per Freedom III dovrebbero farti capire meglio delle variazioni necessarie per LTlib.

Saluti,

Mauro
Ringraziano per il messaggio: Alex73

Si prega Accedi o Crea un account a partecipare alla conversazione.

  • Mauro Laurenti
  • Avatar di Mauro Laurenti
  • Moderator
  • Moderator
Di più
8 Anni 1 Settimana fa #5 da Alex73
Risposta da Alex73 al topic Errore di compilazione
Mi sto schiarendo le idee un po' alla volta, se ho capito bene quindi una volta che includo "LTlib.h" non serve più che includa, nel caso di Freedom II, "PIC18f4550_config" perchè la include già appunto "LTlib.h"...... è esatto?
Compilando mi compaiono anche una serie di warning tipo questo:

C:/LTlib_v_4.0.3/conf\PIC18F4550_config.h:103: warning: redefining preprocessor macro "ADC_CH4" (C:\Program Files (x86)\Microchip\xc8\v1.33\include\plib\adc.h: 521)

C'è qualcosa che si può fare per rendere più "pulit0" l'output di compilazione?

Grazie,
saluti Alex

Si prega Accedi o Crea un account a partecipare alla conversazione.

  • Alex73
  • Avatar di Alex73
  • Senior Member
  • Senior Member
Di più
Moderatori: Mauro LaurentiPinnaStefAMatteo Garia

Registrati al sito

Accedi a tutte le risorse e articoli non visibili pubblicamente, puoi registrarti con pochi passi.

Registrati al sito LaurTec.

Login