[Résolu] IDE et les Onglets

Bonjour,
Voila, mon projet avance et j'ai maintenant 2 codes qui avoisinent tous 2 les 1400 lignes. Il faut se rendre à l’évidence cela commence à devenir illisible.

Pourrait on m'expliquer comment fonctionne les onglets et en particulier avec les variable qui jusqu'à maintenant sont globale, je les ai donc déclaré en tout début de code et bien entendue, je les appellent dans la plupart de mes fonctions.

Merci pour votre aide.

Comme en C ou C++ avec des fichiers différents

Explorez le mot clé extern pour vos variables globales

On ne coupe pas un code en différents fichiers aléatoirement juste pour que chaque fichier soit moins long, il faut essayer de séparer en unités logiques indépendantes, éventuellement avec un .h et utiliser #include

Bonjour,
Personnellement, je mets toutes les déclarations et les fonctions setup() et loop() dans l'onglet qui porte le nom du programme.
Ensuite, les autres onglets sont utilisés pour toutes les autres fonctions classées par thèmes. (affichage, encodeur, potentiomètres... par exemple) Cela simplifie la lecture et permet le facile transfert de morceaux de code d'un programme à l'autre.

Deux fonctionnement sont possibles :

  1. tout en fichier *.ino
  2. comme l'a dit J-M-L en ajouter dans le répertoire des fichier c ou cpp avec possibilité de leur adjoindre des fichier h.

Dans le deuxième cas le mieux est de lire un vrai tuto de C/cpp, les informations trouvées dans le monde arduino ne seront pas satisfaisantes.

Dans le premier cas faut bien comprendre que tu ne travaille en multifichier qu'en apparence.
En fait l'ide avant la compilation concatène tous les fichiers ino supplémentaires DANS L'ORDRE ALPHABETIQUE.
Ce qui peut donner des résultats surprenants.
Imagines que tu mettes les déclarations dans le fichier principal, la fonction setup()dans le fichier setup.ino, la fonction loop dans Loop.ino.
Comme L vient avant S l'Ide constituera un fichier avec loop() avant setup() et cela ne compilera pas.

Une astuce : imposer l'ordre avec un préfixe :
setup.ino ---> A_setup.ino
loop.ino --> B_loop.ino
C_fichier_machin.ino
etc

Bonjour,
Merci à tous pour votre aide et témoignage.
Je me suis lancé dans le multi onglets. 1er essais non concluant avec l'afficheur 2004 qui devient tout blanc après la 1ere action.
Je suppose que j'ai trop détaillé:
Onglet principal Description
1 Lib
2 Liaison externe
3 Déclaration des variables
4 Base de donnée (PROGMEM)
5 Setup + Boot
6 Loop
Puis 7 famille de fonctions

Après le démarrage et la séquence de boot, la date et l'heure récupéré par la voie série s'affiche ainsi que 4 pictogrames avec 4 états associé (Fonctionnement normal). Dés que je change l'état du menu, le LCD deviens blanc. Mon code étant fonctionnel auparavant, j'ai testé avec un autre afficheur mais même résultat.

qu'es qui peux expliquer ça?
Merci

Premièrement tu ne communique pas ton code (perso je ne le regarderai pas --> je préfère insister sur la méthode pour faire cette opération).
Deuxièmement je ne sais pas ce que tu cherches comme explication mais pour moi il faut chercher là où tu as fait les âneries.
Et comme tu m'a l'air d'avoir tout voulu faire en une seule passe, des âneries il doit y en avoir un certain nombre.

Donc un peu de méthode et ne pas confondre vitesse et précipitation.

Personnellement je n'ai jamais chercher à changer l'organisation d'un vrai programme fonctionnel sans me faire la main au préalable sur du code basique.
Je te conseille d'en faire autant avec des simples dels (leds) qui clignotent --> inutile de chercher les emmer*es avec du matériel trop complexe.

Une fois que cela fonctionne sur un exemple basique :

  • tu sélectionne la ou les fonctions que tu veux déporter
  • tu mets en commentaires dans le fichier principal
  • tu recopies dans le nouvel onglet
    et tu testes.
    Faire ainsi te permet de revenir instantanément en arrière pour des vérifications.

Quand les fonctions déportées fonctionnent tu peux effacer le code mis en commentaires dans le programme original.

NOTE IMPORTANTE
Si je t'ai cité le cas avec setup() et loop() déportés c'est pour grossir le trait pour bien faire comprendre comment l'IDE fonctionne : inclusion de fichier dans le fichier principal et ce par ordre alphabétique.

Maintenant il faut aussi resté simple :
Les fonctions setup et loop sont mieux à leur place dans le programme principal.
S'il doit y avoir des traitements qui comprennent beaucoup de lignes de code et que cela gêne la lisibilité du programme, ce sont ces traitements qui doivent être placés dans des fonctions et ces fonctions déportées dans un onglet. Ces fonction seront appelées dans setup ou loop.
Setup et loop se transformeront en une sorte de "table des matières" du programme.

NOTE IMPORTANTE 2
Ca c'est la solution arduino. Je l'ai cité parce qu'elle existe.
Néanmoins la meilleure solution reste celle dont t'a parlé J-M-L.
Mais pour l'utiliser il faut faire l'effort de suivre un tuto de Cou C++ et il n'y a que toi qui peut le faire.

Bonjour,
Oui, j’avoue, j'ai étais expéditif et j'ai fais des âneries. Je m'y suis repris et j'ai trouvé le bon compromis. Tout est rentré dans l'ordre.
Merci.

bravo - bonne démarche