Arduino & C: mettre une fonction et une variable globale dans un fichier externe

Ce doit être un problème simple. Je suis en train de diviser le code en deux fichiers à l'intérieur d'une esquisse:

test.ino:

void setup(){}
void loop(){ fn(); }

test.c:

char myChar = '?';
void fn(){ myChar++; }

J'ai essayé à l'aide d'un test.h fichier avec différentes configurations telles que avoir les lignes:

  • extern char myChar;,
  • char myChar;
  • void fn();
  • extern void fn();

Et diverses combinaisons de y compris les tests.c et de test.h les fichiers dans les différents fichiers, mais j'ai toujours une erreur de compilation ou d'une autre, tels que:

test.rpc.o:(.les données.myChar+0x0): multiple definition of `myChar'

test.c.o:(.les données.myChar+0x0): d'abord défini ici

Ou

test.rpc.o: Dans la fonction "setup":

C:\Program Files\arduino-1.0.4/test.ino:4: undefined reference to `fn()'

Je suis vraiment en tirant mes cheveux avec celui-ci. Toute aide serait grandement appréciée

Je ne suis pas familier avec le .ino extension? Est-ce un fichier c++? Dans ce cas, vous pourriez avoir besoin d'utiliser une liaison C si votre fonction est définie dans un fichier C. Vous pouvez le faire comme ceci: extern "C" void fn()

OriginalL'auteur CL22 | 2013-05-12