Problema librerie eeprom i2c

11 Anni 1 Mese fa #1 da nevio86
Problema librerie eeprom i2c è stato creato da nevio86
Ciao a tutti!
Ho un problema che non riesco a risolvere con un programmino per pic18f4550 che ho scritto tempo fa.

La situazione:

Ho scritto questo programma alcuni mesi fa, l'ho evoluto, ho aggiunto codice e codice salvando ogni giorno-due una copia.
Qualche giorno fa ho dovuto formattare l'hard disk, così sono andato a reinstallare il compilatore C18 e mplab da zero.
Ho installato le ultime versioni (mplab 8.90 e c18 3.45).

Alla prima esecuzione del programma non trovava i file delay.h, i2cEEPROM.h intEEPROM.h delay.lib i2cEEPROM.lib intEEPROM.lib, così li ho riassociati utilizzando sempre le vecchie librerie di Mauro Laurenti che avevo usato al tempo.
Quando provo a compilare però mi da errore.

Error - could not find definition of symbol 'WriteI2C' in file 'i2cEEPROM.o'.

Non essendo un errore di sintassi o qualcos'altro di immediato non so come risolverlo...
Voi sapreste come risolverlo?

Ogni suggerimento è super-apprezzato!!!
Grazie anticipatamente!

Nevio



l'output intero dell'errore durante la compilazione è questo

Debug build of project `C:\Documents and Settings\gino\Desktop\schedina piccola\mio\funzionante 03\adc.mcp' started.
Language tool versions: mpasmwin.exe v5.48, mplink.exe v4.46, mcc18.exe v3.45, mplib.exe v4.46
Preprocessor symbol `__DEBUG' is defined.
Fri Mar 15 08:04:37 2013
Clean: Deleting intermediary and output files.
Clean: Deleted file "C:\Programmi\Microchip\mplabc18\main.o".
Clean Warning: File "C:\Documents and Settings\gino\Desktop\schedina piccola\adc e intEEPROM\adc.cof" doesn't exist.
Clean Warning: File "C:\Documents and Settings\gino\Desktop\schedina piccola\adc e intEEPROM\adc.hex" doesn't exist.
Clean: Deleted file "C:\Documents and Settings\gino\Desktop\schedina piccola\mio\funzionante 03\adc.mcs".
Clean: Done.
Executing: "C:\Programmi\Microchip\mplabc18\v3.45\bin\mcc18.exe" -p=18F4550 /i"C:\Programmi\Microchip\mplabc18\v3.40\h" "main.c" -fo="C:\Programmi\Microchip\mplabc18\main.o" -D__DEBUG -Ou- -Ot- -Ob- -Op- -Or- -Od- -Opa-
Executing: "C:\Programmi\Microchip\mplabc18\v3.45\bin\mplink.exe" /p18F4550 /l"C:\Programmi\Microchip\mplabc18\v3.40\lib" "..\..\..\..\..\..\Programmi\Microchip\mplabc18\main.o" "C:\Programmi\Microchip\mplabc18\mio\LaurTec_c18_libraries_old\delay\delay.lib" "C:\Programmi\Microchip\mplabc18\mio\LaurTec_c18_libraries_old\intEEPROM\intEEPROM.lib" "C:\Programmi\Microchip\mplabc18\mio\LaurTec_c18_libraries_old\i2cEEPROM\i2cEEPROM.lib" /u_CRUNTIME /u_DEBUG /z__MPLAB_BUILD=1 /z__MPLAB_DEBUG=1 /o"adc.cof" /M"adc.map" /W
MPLINK 4.46, Linker
Device Database Version 1.11
Copyright (c) 1998-2011 Microchip Technology Inc.
Error - could not find definition of symbol 'WriteI2C' in file 'i2cEEPROM.o'.
Errors : 1

Link step failed.
Debug build of project `C:\Documents and Settings\gino\Desktop\schedina piccola\mio\funzionante 03\adc.mcp' failed.
Language tool versions: mpasmwin.exe v5.48, mplink.exe v4.46, mcc18.exe v3.45, mplib.exe v4.46
Preprocessor symbol `__DEBUG' is defined.
Fri Mar 15 08:04:38 2013
BUILD FAILED

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

  • nevio86
  • New Member
  • New Member
Di più
11 Anni 1 Mese fa #2 da StefA
Risposta da StefA al topic Problema librerie eeprom i2c
Quell'errore indica che non è stato definito quel simbolo..WriteI2C
solitamente o il nome della funzione è sbagliato o non sono stati impostati correttamente i percorsi del compilatore.
apri il file i2cEEPROM.h (anche con il block notes) e vai a cercare il nome della funzione che utilizzi, se è cambiato, aggiornalo e dovresti risolvere. Altrimenti includi il percorso dove si trovano i file che hai citato, nei percorsi del compilatore, nelle build options.

Ste

..avevano magari fatto lo sgambetto al ka, ma il sangue restava sempre più denso dell'acqua.. [cit.]

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

  • StefA
  • Avatar di StefA
  • Moderator
  • Moderator
Di più
11 Anni 1 Mese fa #3 da nevio86
Risposta da nevio86 al topic Problema librerie eeprom i2c
Ciao StefA,
grazie per l'aiuto.
Il nome delle funzioni ho controllato ed è sempre lo stesso.
L'errore che dici me lo dava quando avevo provato ad usare le librerie nuove di Mauro, in cui infatti le funzioni si chiamano in modo leggermente diverso.
Ma in questo caso sono le stesse che richiamo nel mio main (ovvero writeI2C_EEPROM e readI2C_EEPROM).

Ho incluso la cartella con le librerie per l'i2cEEPROM nelle built option sia su Include Search Path che Library Search Path che in Linker-Script Search Path, ma l'errore è sempre lo stesso...

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

  • nevio86
  • New Member
  • New Member
Di più
11 Anni 1 Mese fa #4 da StefA
Risposta da StefA al topic Problema librerie eeprom i2c
se cliccki sull'errore ti porta da qualche parte nel programma?
La cosa che mi sembra strana è che non riconosce..WriteI2C..mentre tu usi..writeI2C_EEPROM..dove starà quel "nome"?
Perdona la domanda banale...ma hai controllato che da qualche parte dentro al main non ci sia scritto WriteI2C, o magari tempo fa lo avevi aggiunto da qualche parte?
Prova casomai ad includere nel main le nuove librerie di Mauro, includendo i file .c e .h e cambia i nomi delle funzioni.

Ste

P.S. così senza vedere programma e file inclusi è un po' difficile, se il programma non è niente di "segreto" posta il progetto intero.

..avevano magari fatto lo sgambetto al ka, ma il sangue restava sempre più denso dell'acqua.. [cit.]

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

  • StefA
  • Avatar di StefA
  • Moderator
  • Moderator
Di più
11 Anni 1 Mese fa #5 da nevio86
Risposta da nevio86 al topic Problema librerie eeprom i2c
Uso anche l'eeprom interna, ma comunque il tutto non si spiega...

Poi è strano perchè ho anche provato a rifare un progetto da zero, copiando ed incollando il codice della guida c18 di Mauro, l'esempio con la eeprom esterna a pagina 258 dell'ultima versione della guida, ma niente da fare... L'errore lì è diverso, ma simile:
Error - could not find definition of symbol 'read_I2C_EEPROM' in file '..\..\..\..\Programmi\Microchip\mplabc18\v3.45\lib\prova.o'.

Tornando al progeto iniziale, ho fatto come hai detto, sostituito le librerie con quelle nuove e cambiato nomi alle chiamate, inserito i .c, ma ci sono sempre errori incomprensibili (errori sulle librerie???):

C:\Programmi\Microchip\mplabc18\mio\LaurTec_c18_libraries_v_2.5\src\i2cEEPROM.c:190:Warning [2058] call of function without prototype
C:\Programmi\Microchip\mplabc18\mio\LaurTec_c18_libraries_v_2.5\src\i2cEEPROM.c:206:Error [1109] type mismatch in redeclaration of 'read_I2C_EEPROM'

Allego il progetto zippato.
Grazie ancora
Nevio
Allegati:

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

  • nevio86
  • New Member
  • New Member
Di più
Moderatori: Mauro LaurentiStefAMatteo Garia

Registrati al sito

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

Registrati al sito LaurTec.

Login