Problema con un file incluso

Ciao a tutti,
ho messo una routine piuttosto lunga in un file .h e l'ho incluso in testa al programma, ma mi da una serie di errori, suppongo perché l'inizializzazione di alcuni componenti è fatta nel file principale.
Ovviamente da qualche parte sbaglio, e mi servirebbero delle indicazioni per capire.
Questi sono alcuni degli errori che mi da il compilatore:

In file included from C:\Users\Stefano\OneDrive\Documenti\Arduino\Test__CaricoAttivo\Test__CaricoAttivo.ino:6:0:
C:\Users\Stefano\OneDrive\Documenti\Arduino\Test__CaricoAttivo\TestStatico_191.h: In function 'void TestStatico_191(int, int, int)':
C:\Users\Stefano\OneDrive\Documenti\Arduino\Test__CaricoAttivo\TestStatico_191.h:54:3: error: 'MCP0' was not declared in this scope
   MCP0.setValue(I1set);
   ^
C:\Users\Stefano\OneDrive\Documenti\Arduino\Test__CaricoAttivo\TestStatico_191.h:59:17: error: 'ina260' was not declared in this scope
     int Pippo = ina260[0].readCurrent();
                 ^
C:\Users\Stefano\OneDrive\Documenti\Arduino\Test__CaricoAttivo\TestStatico_191.h:65:14: error: 'ina260' was not declared in this scope
     Somma1 = ina260[0].readCurrent();
              ^
C:\Users\Stefano\OneDrive\Documenti\Arduino\Test__CaricoAttivo\TestStatico_191.h:91:21: error: 'ina260' was not declared in this scope
         int Pippo = ina260[0].readCurrent();
                     ^
C:\Users\Stefano\OneDrive\Documenti\Arduino\Test__CaricoAttivo\TestStatico_191.h:97:18: error: 'ina260' was not declared in this scope
         Somma1 = ina260[0].readCurrent();

Le istanze create nel file principale non vengono riconosciute? E perché? E come si risolve?
Grazie
Stefano

Senza il codice completo si va per supposizioni.

Ad ogni modo, quando nello sketch principale includi il file TestStatico_191.h, concettualmente è come se dici al compilatore "prendi tutto quello che c'è nel file TestStatico_191.h ed inseriscilo qui"

Se, il qui è prima di aver dichiarato gli oggetti MCP0 oppure ina260 il compilatore ancora non sa chi siano (perché arrivano dopo) e quindi ti solleva l'errore.

La soluzione più semplice è mettere l'istruzione #include 'TestStatico_191.h dopo.
Io di solito per star tranquillo la metto poco prima del setup().

Hai già provato a mettere la #include del file *.h dopo le definizioni di quelle variabili nel file *.ino?

Ciao, si il problema era quello, GRAZIE!

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.