Vivion91 Posté(e) Septembre 18, 2016 Posté(e) Septembre 18, 2016 j'essaye de passer une variable dans différents onglets mais j'ai en retour toujours un message d'erreur si je tente avec #define ma variable deviens constante (normal) dans configuration.h et ensuite dans les différents onglets cela fonctionne,mais je ne souhaite pas utiliser une constante mais une variable. je suis sous arduino 1.06 avec un marlin pour discovery200 merci de votre aide
nicephore Posté(e) Septembre 18, 2016 Posté(e) Septembre 18, 2016 Par exemple : int maVariable // déclaration d'une variable de type integer. Donc maintenant si tu déclare cette variable dans par exemple un fichier : fic_mes_variables.h et que dans un autre fichier tu fait : #include "fic_mes_variables.h" Alors maVariable peut être manipulée depuis le fichier contenant cet #include. Toutefois si ta variable n'est utilisée que depuis un seul et même lieu il serait mieu de ne la déclarer que depuis cet endroit (soit en local à une fonction soit en global et donc manipulable depuis toutes les fonctions contenus). Mais que veux tu faire plus exactement ?
Vivion91 Posté(e) Septembre 18, 2016 Auteur Posté(e) Septembre 18, 2016 Je vais essayé cela mon but est d'afficher le numéro de la couche en cours. j'ai préparé la mise en place sur l'afficheur mais je n'arrivais á passer la variable á la gestion de l'afficheur.
nicephore Posté(e) Septembre 18, 2016 Posté(e) Septembre 18, 2016 Tu le prends ou (dans quel fichier) le "Current Layer" ?
Vivion91 Posté(e) Septembre 20, 2016 Auteur Posté(e) Septembre 20, 2016 Je lis les variations de l'axe Z. mais dans un premier temps je vais essayer de comprendre ton # include àvec la déclaration du fichier.h mais il faut aussi un fichier .cpp
nicephore Posté(e) Septembre 20, 2016 Posté(e) Septembre 20, 2016 Non pas besoin de .cpp car la tu ne fait qu'une déclaration. Le .cpp est utile si tu fait par exemple une fonction ou autre. Donc soit tu déclare ta variable dans un fichier commun soit tu fait un nouveau fichier .h. Je sais pas si je me fait comprendre ?
nicephore Posté(e) Septembre 20, 2016 Posté(e) Septembre 20, 2016 Après relecture : en fait y-a plusieurs moyen de rendre une déclaration global ou local. Par exemple à l'intérieur d'un d'une fonction la variable sera local à la fonction. En en haut d'un fichier .ino elle sera global (utilisable par toutes les fonctions de ce fichier). via un include, elle sera global à tous fichier disposant de cet include. Je suis avec mon iphone je ne peux donner d'exemple, mais dit moi si je me fait comprendre.
Vivion91 Posté(e) Septembre 22, 2016 Auteur Posté(e) Septembre 22, 2016 J'ai mis ma variable dans marlin.h ,elle est reconnue dans l'onglet Marlin_main.cpp mais pas dans l'onglet dogm_lcd_implementaion.h,alors que les deux ont #include "Marlin.h" je ne comprend pas pourquoi?
nicephore Posté(e) Septembre 22, 2016 Posté(e) Septembre 22, 2016 Dans dogm_lcd_implementaion.h t'a bien fait l'ajout de #include "Marlin.h" car il n'y est pas d'origine. Arduino te dit quoi comme erreur ?
Vivion91 Posté(e) Septembre 22, 2016 Auteur Posté(e) Septembre 22, 2016 voici l'erreur avec aussi le bout de code dans dogm_lcd_implementaion.h
nicephore Posté(e) Septembre 22, 2016 Posté(e) Septembre 22, 2016 (modifié) j'ai pas votre dagoma, tu peux svp poster ton source code ? Je suppose que didi est ta déclaration ? Cette ftostr32sp() viens d'où ? C'est pas un float à passé en paramètre ? Modifié (le) Septembre 22, 2016 par nicephore
Vivion91 Posté(e) Septembre 22, 2016 Auteur Posté(e) Septembre 22, 2016 oui didi est ma variable pour le moment (plus facile à trouver) je me suis inspirer des lignes au-dessus mais j'ai essayé sans cela mais même résultat mon code source total fait 7.04 Mo compacté ou tu en veux qu'une partie ?
nicephore Posté(e) Septembre 22, 2016 Posté(e) Septembre 22, 2016 7Mo c'est pas si mal Donne moi les fichiers important (le fichier ou tu déclare ta variable et ceux qui l'appels via include et autre)en fonction de ce que tu veux faire et la fonction ftostr32sp() car d'après son nom elle doit certainement transformer un float en string (pour l'affichage) hors un layer est un entier et nom pas une virgule flottante, ne epux tu pas directement ta variable dans le fichier de gestion de l'affichage ?
Vivion91 Posté(e) Septembre 22, 2016 Auteur Posté(e) Septembre 22, 2016 cela ne concerne 3 fichiers dogm_lcd_implementation.h Marlin.h Marlin_main.cpp
nicephore Posté(e) Septembre 23, 2016 Posté(e) Septembre 23, 2016 retire extern devant ta déclaration de variable.
Vivion91 Posté(e) Septembre 23, 2016 Auteur Posté(e) Septembre 23, 2016 quand je retire extern j'ai beaucoup de message d'erreur This report would have more information with "Show verbose output during compilation" enabled in File > Preferences. Arduino: 1.0.6 (Windows NT (unknown)), Board: "Melzi 1284p 16mhz" buzzer.cpp.o:(.bss.didi+0x0): multiple definition of `didi' blinkm.cpp.o:(.bss.didi+0x0): first defined here cardreader.cpp.o:(.bss.didi+0x0): multiple definition of `didi' blinkm.cpp.o:(.bss.didi+0x0): first defined here configuration_store.cpp.o:(.bss.didi+0x0): multiple definition of `didi' blinkm.cpp.o:(.bss.didi+0x0): first defined here digipot_mcp4451.cpp.o:(.bss.didi+0x0): multiple definition of `didi' blinkm.cpp.o:(.bss.didi+0x0): first defined here M100_Free_Mem_Chk.cpp.o:(.bss.didi+0x0): multiple definition of `didi' blinkm.cpp.o:(.bss.didi+0x0): first defined here Marlin.cpp.o:(.bss.didi+0x0): multiple definition of `didi' blinkm.cpp.o:(.bss.didi+0x0): first defined here MarlinSerial.cpp.o:(.bss.didi+0x0): multiple definition of `didi' blinkm.cpp.o:(.bss.didi+0x0): first defined here Marlin_main.cpp.o:(.bss.didi+0x0): multiple definition of `didi' blinkm.cpp.o:(.bss.didi+0x0): first defined here mesh_bed_leveling.cpp.o:(.bss.didi+0x0): multiple definition of `didi' blinkm.cpp.o:(.bss.didi+0x0): first defined here planner.cpp.o:(.bss.didi+0x0): multiple definition of `didi' blinkm.cpp.o:(.bss.didi+0x0): first defined here qr_solve.cpp.o:(.bss.didi+0x0): multiple definition of `didi' blinkm.cpp.o:(.bss.didi+0x0): first defined here Sd2Card.cpp.o:(.bss.didi+0x0): multiple definition of `didi' blinkm.cpp.o:(.bss.didi+0x0): first defined here SdBaseFile.cpp.o:(.bss.didi+0x0): multiple definition of `didi' blinkm.cpp.o:(.bss.didi+0x0): first defined here SdFatUtil.cpp.o:(.bss.didi+0x0): multiple definition of `didi' blinkm.cpp.o:(.bss.didi+0x0): first defined here SdFile.cpp.o:(.bss.didi+0x0): multiple definition of `didi' blinkm.cpp.o:(.bss.didi+0x0): first defined here SdVolume.cpp.o:(.bss.didi+0x0): multiple definition of `didi' blinkm.cpp.o:(.bss.didi+0x0): first defined here servo.cpp.o:(.bss.didi+0x0): multiple definition of `didi' blinkm.cpp.o:(.bss.didi+0x0): first defined here stepper.cpp.o:(.bss.didi+0x0): multiple definition of `didi' blinkm.cpp.o:(.bss.didi+0x0): first defined here stepper_indirection.cpp.o:(.bss.didi+0x0): multiple definition of `didi' blinkm.cpp.o:(.bss.didi+0x0): first defined here temperature.cpp.o:(.bss.didi+0x0): multiple definition of `didi' blinkm.cpp.o:(.bss.didi+0x0): first defined here ultralcd.cpp.o:(.bss.didi+0x0): multiple definition of `didi' blinkm.cpp.o:(.bss.didi+0x0): first defined here vector_3.cpp.o:(.bss.didi+0x0): multiple definition of `didi' blinkm.cpp.o:(.bss.didi+0x0): first defined here watchdog.cpp.o:(.bss.didi+0x0): multiple definition of `didi' blinkm.cpp.o:(.bss.didi+0x0): first defined here collect2.exe: error: ld returned 1 exit status
nicephore Posté(e) Septembre 23, 2016 Posté(e) Septembre 23, 2016 @Vivion91regarde tes messages privé.
nicephore Posté(e) Septembre 23, 2016 Posté(e) Septembre 23, 2016 Je suis arrivé dans ma campagne, ce sera donc pour lundi.
Messages recommandés
Créer un compte ou se connecter pour commenter
Vous devez être membre afin de pouvoir déposer un commentaire
Créer un compte
Créez un compte sur notre communauté. C’est facile !
Créer un nouveau compteSe connecter
Vous avez déjà un compte ? Connectez-vous ici.
Connectez-vous maintenant