Go Down

Topic: Tab Multiple (Read 10059 times) previous topic - next topic

astrobeed


il file .h a cui mi riferisco é semplicemente un file .h che ho creato tra le mie tab e richiamo con
#include <initialization.h>


Si ma questo file deve stare dove c'è il tuo sketch, non capisco perché hai dovuto creare un nuovo file .h dentro la cartella della libreria LPD8806.
Scientia potentia est

f.schiano

no infatti non l´ho messo nella libreria LPD8806. Mi sono forse espresso male prima.

la cartella della libreria non l´ho minimamente toccata naturalmente.

Semplicemente, spostando gli include dal mio file main ( dove ci sta il setup() e il loop()) al mio file initialization.h, ho l'errore precedente.

astrobeed


Semplicemente, spostando gli include dal mio file main ( dove ci sta il setup() e il loop()) a l mio file initialization.h, ho l´errore precedente.


Stiamo facendo il giro di peppe  :smiley-mr-green:
Posta tutto lo sketch, librerie extra incluse, magari sotto forma di file rar, altrimenti non ne veniamo mai a capo.
Scientia potentia est

f.schiano

#18
Dec 03, 2013, 05:14 pm Last Edit: Dec 04, 2013, 10:12 am by f.schiano Reason: 1
Ok. Ma se perdi troppo tempo lascia perdere che cerco di trovarlo da solo l´errore.

In ogni caso ti ringrazio tanto.
Fab.

gpb01

Non ho seguito bene la discussione, ma ho letto l'ultima parte ...
... occhio che con l'IDE ci sono problemi ad includere librerie nelle librerie.

Ad esempio, io ho un mio .h che include la SoftwareSerial.h ... bene, se la SoftwareSerial.h NON la includo anche a livello di .ino, prima di includere il mio modulo .h che la usa ... l'IDE non la trova e da errore ...

Ho idea che tu sia nella stessa situazione ...  :smiley-roll:

Guglielmo
Search is Your friend ... or I am Your enemy !

f.schiano

Ciao Guglielmo e cosa intendi con "includere a livello di .ino"

Come dovrei fare?

astrobeed

Meno male che ti avevo detto di non mettere definizioni di variabili dentro il file .h  :smiley-mr-green:
Il tuo initialization.h è un macello.
Scientia potentia est

f.schiano

Lo so ... ma quello devo cambiarlo ancora. Un passo alla volta :(

gpb01

Allora, io ho una mia libreria con il suo .h che deve usare la libreria SoftwareSerial.h ...
... naturalmente nel MIO .h c'è l'include della SoftwareSerial.h e avevo immaginato che includendo nel programma principale solo il mio .h dovesse bastare (... dato che la SoftwareSerial la uso solo dentro quella mia libreria e non nel programma principale).

E invece NO, se prima dell include del MIO .h non includo comunque il SoftwareSerial.h ... da errore ...
... credo sia una limitazione dell'IDE.

In pratica ... tutte le include che hai nel tuo initialization.h ... devi ripeterle ANCHE nel Controller_v3_2.ino ... e vedrai che compila ... ;)

Guglielmo
Search is Your friend ... or I am Your enemy !

astrobeed

Altra cosa, non puoi inizializzare una classe dentro un file .h, il tuo errore non è che non trova la libreria è che inizializzi la classe all'interno del file h.
Dentro il file .h ci devono stare solo i prototipi delle funzioni, le  #define, le #include, le pragma ed eventuali opzioni per la compilazione condizionale, però solo per le cose che ho elencato prima, tutte le altre cose è meglio che non le metti nei file .h a meno che non sai perfettamente quello che stai facendo e hai una buona esperienza con il C.
Scientia potentia est

f.schiano

Ok. Io avevo pensato di fare cosí per far si che ci fosse un file che riunisse tutte le variabili che mi servono e che devono essere inizializzate sin da subito.

astrobeed


E invece NO, se prima dell include del MIO .h non includo comunque il SoftwareSerial.h ... da errore ...
... credo sia una limitazione dell'IDE.


Si le include delle librerie di Arduino devono stare tutte nel file .ino principale, è un limite, ma anche un errore, di come l'IDE compone il file  da dare in pasto al compilatore.
L'uso del file .h generale è limitato solo ai file .h del progetto e le relative define, include, etc.
Scientia potentia est

astrobeed


Ok. Io avevo pensato di fare cosí per far si che ci fosse un file che riunisse tutte le variabili che mi servono e che devono essere inizializzate sin da subito.


Quello lo fai con una funzione dedicata, p.e. init_sys(), che si trova da qualche parte nel programma, non si fa nel file .h.
Scientia potentia est

f.schiano

Ok va benissimo allora devo aggiustare un pó il mio codice.

Invece a proposito dell´errore che avevo prima? Non c´entra niente con questo vero?

Devo seguire il consiglio di Guglielmo?

gpb01


è un limite, ma anche un errore, di come l'IDE compone il file  da dare in pasto al compilatore.


Si, infatti non so cosa combini con il codice ma con questa storia di voler creare lui i prototipi delle funzioni (... così poi, la prima volta che la gente invece di usare l'IDE usa un altro ambiente, impazzisce  ]:D ) e di gestire lui le include ... è un casino ...  :smiley-mr-green: XD :smiley-mr-green: XD
Search is Your friend ... or I am Your enemy !

Go Up