J'essaye de découper mon programme principal en plusieurs fichiers comme cela :
je cré un nouvel onglet,
je le nomme sans extension
cela cré un fichier .ino dans le meme répertoire que mon fichier principal.
Normalement pour inclure le code de ce nouveau fichier dans mon fichier principal il faut écrire :
#include <test.ino>
mais lorsque je compile j'ai le message d'erreur
fatal error: test.ino: No such file or directory
lorsque j'indique le chemin exacte de mon fichier cela fonctionne
#include <c:/chemin de mon fichier/test.ino>
donc ma question : pourquoi le chemin par default celui ou est enregistré mon fichier principal n'est pas pris en compte ? Peut on vérifier le chemin dans lequel va checker l'ide ?
Si tu utilises des <> le compilateur va chercher les fichiers dans les répertoire des librairies.
Si tu veux include des fichiers de ton projet il faut utiliser "" -> #include "test.ino"
Remarque: ce n'est pas une bonne idée du tout d'inclure des fichier ino puisque l'ide arduino concatène déjà tous les fichiers .ino présents dans le répertoire du programme principal pour les compiler.
La bonne pratique c'est de créer des fichiers .cpp et leur .h associés et d'inclure les .h
Une autre pratique dans l'IDE arduino est de créer plusieurs fichiers .ino. Tu n'as pas besoin de les inclure avec un #include car l'ide va les concaténer pour les compiler. Le problème c'est qu'on ne maitrise pas l'ordre ou ils sont concaténés (je crois que c'est par ordre alphabétique).
car l'ide va les concaténer pour les compiler. Le problème c'est qu'on ne maitrise pas l'ordre ou ils sont concaténés (je crois que c'est par ordre alphabétique).
C'est cela même.
Mais comme ce n'est pas un bout de programme fut-il une IDE qui va faire la loi il est possible d'imposer un ordre.
Il suffit de préfixer les noms de fichier avec une lettre :
a_premier-Fichier-A-concatener.ino pour le premier,
b_second-Fichier-A-concatener.ino pour le second etc
et l'IDE fera ce qu'on lui demande de faire.
Néanmoins la meilleure solution est d'ajouter des fichiers cpp et leur fichier h.
Si tu découpe astucieusement ton projet en fichiers cpp tu pourra réutiliser ces fichiers dans d'autres projets. Enregistrer une copie du ou des fichiers "bibliothèques" dans le répertoire de l'autre projet suffit.
Attention : pour l'utilisation de variables globales (définies dans le fichier ino) dans le fichier cpp il faut signaler au compilateur qu'elles sont déjà déclarées ailleurs. Cela se fait avec le mot clé "extern" sinon le compilateur va hurler.
Fichier ino :
int test;
Fichier cpp :
extern int test;