2017-09-23 5 views
0

Je travaille sur un projet d'utilisation sans fil de l'impulsion de fréquence cardiaque Arduino. Mon problème est quand j'ajoute la bibliothèque de RadioHead au code d'impulsion cardiaque générique existant; c'est contradictoire.Ajout de la bibliothèque RadioHead à l'esquisse Arduino

Pour être précis, il est en conflit avec la section d'interruption seulement. Je lis un peu sur Internet, et je suppose que j'ai un conflit de bibliothèque ... Mais il n'y a pas d'autres bibliothèques utilisées.

Lorsque je tente de télécharger le croquis seulement après l'ajout RadioHead:

#include <RH_ASK.h> 

Je reçois le message suivant:

C:\Users\namee\AppData\Local\Temp\cc9lzNai.ltrans2.ltrans.o: In function `main': 

C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino/main.cpp:43: undefined reference to `setup' 

collect2.exe: error: ld returned 1 exit status 

exit status 1 
Error compiling for board Arduino Leonardo. 

Répondre

0

La cause de l'erreur, comme vous a été déjà expliqué par Sterretje dans votre cross post of this question to the Arduino Forum:

Vous n'avez simplement pas écrit de fonction setup() dans votre esquisse; rien à voir avec un conflit de bibliothèque.

La convention Arduino est que chaque dessin doit avoir une fonction setup() et loop(), même si elles sont laissées vides. Dans le Arduino core library there is a main() definition qui appelle ces fonctions, l'erreur que vous avez rencontrée lorsque vous n'avez pas défini setup() dans votre esquisse. Je trouve que c'est une approche raisonnable pour rendre la programmation aussi conviviale que possible pour les débutants et utile pour presque tous les projets que j'ai réalisés. Si pour une raison quelconque vous manquez le main() standard de C++ alors vous pouvez définir votre propre main() dans l'esquisse, où il remplacera la définition dans main.cpp. Cependant, je recommanderais de ne pas le faire à moins d'avoir de bonnes raisons.

+0

merci beaucoup pour votre réponse ... en fait ce n'est pas le code principal que j'utilise c'est comme un sub tap (mon erreur n'a pas déclaré cela), mais sous forme Arduino il y avait de l'aide et ils ont compris que le problème est RadioHead utilise les temporisateurs 1 et 2 et c'est pourquoi c'est un conflit ... la solution est de changer le temporisateur de RadioHead à 5 par exemple afin qu'il n'interfère pas .. Je n'ai pas réussi à éditer le dossier (RH_ASK.cpp) à changer l'horloge mais continuer à travailler dessus ... si vous avez une idée à ce sujet, merci de m'écrire .. merci –

+0

L'erreur causée par le conflit de minuterie est complètement différente de l'erreur dans cette question et donc la discussion est désactivée sujet ici. Il semble que ce problème soit sur le point d'être résolu sur le forum Arduino. – per1234