Aller au contenu


Photo
- - - - -

Appel de fonctions personnelles


  • Veuillez vous connecter pour répondre
7 réponses à ce sujet

#1 Paqane

Paqane

    Nouveau membre

  • Membres
  • 6 messages

Posté 23 avril 2017 - 12:11

Bonjour à vous Maker. Question sans réponse pour moi...

 

Je poursuis une formation à distance sur Arduino sur un site en France. Après avoir installé les sketchs fournis de programmation, lorsque je vérifie la programmation avant la compilation, Arduino me signale toujours une erreur lorsque le sketch fait appel à une fonction personnelle. Dans le sketch installé, cette fonction est placée APRÈS la fonction loop() et ça me renvoie constamment un message d'erreur. Un informaticien m'a dit de plutôt placer cette fonction personnelle (sous-routine) AVANT la fonction loop() et cela a réglé mon problème. Question, qu'est-ce qui explique cette différence ??? Les cartes Arduino et tout le reste sont pourtant les mêmes. Est-ce différent parce que je suis en Amérique ? Vraiment, je cherche où est mon bug et enfin comprendre.



#2 Path

Path

    Made By Humans

  • Modérateur
  • PipPipPipPipPip
  • 2 504 messages
  • Gender:Male
  • Location:Paris

Posté 23 avril 2017 - 12:15

Je crois que le compilateur et le matériel se moquent de savoir où tu te trouve :D

 

Tu peux envoyer le code (ou un extrait) avant / après stp ?



#3 arobasseb

arobasseb

    Membre chevronné

  • Administrateur
  • PipPipPipPip
  • 737 messages
  • Gender:Male
  • Location:BORDEAUX (33)
  • Interests:Informatique, robotique et sciences technique en générale.

Posté 23 avril 2017 - 12:53

Normalement on ne peut utiliser une fonction non déclarée, et le compilateur fonctionne de façon séquentielle, du coup appeler une fonction qui n'est pas encore déclarée créer une erreur.

De là deux solutions : écrire la méthode avant de l'utiliser, ou alors écrire la déclaration de la méthode et plus loin dans le sketch écrire la méthode. Il existe aussi de mémoire une troisième alternative, c'est d'inclure la définition de la méthode en un fichier externe et de l'inclure en entête de ton sketch, puis d'écrire la méthode dans ton sketch.

Quand tu utilise le sketch fourni n'as tu pas oublié un fichier (souvent avec extension .h) ?



#4 Jan

Jan

    Webmaster

  • Membres
  • PipPipPipPipPip
  • 4 747 messages
  • Gender:Male
  • Location:Rhône Alpes

Posté 23 avril 2017 - 03:23

réponse par e-mail de Paqane à 13h34 :

 

Bien d'accord avec l'indifférence du compilateur... ci-attaché, l'un des sketchs fournis. Lorsque j'effectue la vérification, le message d'erreur indique 'httpRequest' was not declared in this scope.

Fichier joint  S1_M6_A6_Seuil.ino   4,21 Ko   87 téléchargement(s)

 

à 14h18 :

 

Arobasseb

merci de tes commentaires et suggestions. J'ai transmis précédemment dans un second courriel à Robot Maker, le sketch tel que fourni par les enseignants (7000 inscrits à ce MOOC dont 4000 ont remis des travaux pour évaluation!) et je demeure très surpris que sur cette foule qui a suivi ce cours, il n'y a personne qui ait soulevé le problème. C'est quand même plutôt incroyable non? Je te mets aussi en lien avec le sketch fourni. De ton côté, est-ce que ça fonctionne tel quel? 
 
Paqane

 

pour info je viens d'autoriser les fichiers .ino attachés aux messages.

 

Faudra expliquer à Paqane d'arrêter de répondre à vos messages par e-mail car ça tombe chez moi :D



#5 arobasseb

arobasseb

    Membre chevronné

  • Administrateur
  • PipPipPipPip
  • 737 messages
  • Gender:Male
  • Location:BORDEAUX (33)
  • Interests:Informatique, robotique et sciences technique en générale.

Posté 23 avril 2017 - 04:05

J'ai essayé ton sketch et après avoir ajouté la librairie qui me manquait (textfinder) je peux compiler sans problème, j'ai juste quelques messages d'avertissement : 

C:\Users\plaqu\Documents\temp\sketch_apr23a\sketch_apr23a.ino: In function 'void httpRequest()':

C:\Users\plaqu\Documents\temp\sketch_apr23a\sketch_apr23a.ino:111:46: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]

     if (finder.find("<echeance hour=\"159\" ")) {

                                              ^
...

Essai de répondre directement sur le forum pour éviter de donner du travail à Jan :)

 



#6 Path

Path

    Made By Humans

  • Modérateur
  • PipPipPipPipPip
  • 2 504 messages
  • Gender:Male
  • Location:Paris

Posté 23 avril 2017 - 05:26

Moi j'aime bien les interventions de Jan :D



#7 Jan

Jan

    Webmaster

  • Membres
  • PipPipPipPipPip
  • 4 747 messages
  • Gender:Male
  • Location:Rhône Alpes

Posté 23 avril 2017 - 07:21

Moi j'aime bien les interventions de Jan :D

 

Mine de rien ça m'a permis de voir que les fichiers .ino ne pouvaient pas être attachés aux messages !! Les Makers fallait me le dire avant ;)



#8 Path

Path

    Made By Humans

  • Modérateur
  • PipPipPipPipPip
  • 2 504 messages
  • Gender:Male
  • Location:Paris

Posté 23 avril 2017 - 07:29

Ben oui et non, on a un super plugin pour intégrer les fichiers ino directement.


  • Jan aime ceci




0 utilisateur(s) li(sen)t ce sujet

0 members, 0 guests, 0 anonymous users