2017-09-23 2 views
0

Ich arbeite an einem Projekt, Arduino Herzfrequenz Puls drahtlos zu verwenden. Mein Problem ist, wenn ich die RadioHead-Bibliothek zu dem vorhandenen generischen Herzimpulscode hinzufüge; es ist widersprüchlich.Hinzufügen von RadioHead-Bibliothek zu Arduino Skizze

Um genau zu sein, es ist nur mit dem Interrupt-Abschnitt widersprüchlich. Ich lese ein bisschen im Internet, und ich denke, ich habe einen Bibliothekskonflikt ... Aber es sind keine anderen Bibliotheken in Gebrauch.

Wenn ich die Skizze versuchen laden Sie nur nach Radiohead Zugabe:

#include <RH_ASK.h> 

ich die folgende Meldung:

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. 

Antwort

0

Die Ursache des Fehlers, wie bereits Sie wurde von sterretje erklärt Ihr cross post of this question to the Arduino Forum:

Sie haben einfach nicht eine Setup() - Funktion in Ihrer Skizze geschrieben; nichts mit einem Bibliothekskonflikt zu tun haben.

Die Arduino-Konvention ist, dass jede Skizze, die eine setup() und loop() Funktion haben sollte, auch wenn sie leer gelassen werden. In der Arduino core library there is a main() definition, die diese Funktionen aufruft, trat also der Fehler auf, den Sie bei der Definition von setup() in Ihrer Skizze hatten. Ich halte dies für einen vernünftigen Ansatz, um das Programmieren so anfängerfreundlich wie möglich zu machen und es ist praktisch für jedes Projekt, das ich gemacht habe. Wenn Sie aus irgendeinem Grund den Standard main() von C++ vermissen, können Sie in der Skizze Ihre eigene main() definieren, wo sie die Definition in main.cpp überschreiben wird. Ich würde jedoch empfehlen, dies zu tun, wenn Sie keinen guten Grund haben.

+0

Vielen Dank für Ihre Antwort ... eigentlich ist dies nicht der Hauptcode, den ich benutze es ist wie ein Unterarm (mein Fehler nicht erklären), aber in Arduino Form gab es einige Hilfe und sie fanden heraus, dass das Problem ist RadioHead benutzt Timer 1 und 2 und deshalb ist es ein Konflikt ... die Lösung ist, den RadioHead-Timer auf 5 zu ändern, damit es nicht stört. Ich habe es nicht geschafft, die (RH_ASK.cpp) -Datei zu bearbeiten schalte den timer aber arbeite noch daran ... wenn du eine idee dazu hast schreibe mir bitte .. danke –

+0

Der durch den Timerkonflikt verursachte Fehler ist völlig anders als der Fehler in dieser Frage und somit ist die Diskussion darüber aus Thema hier. Es sieht so aus, als ob das Problem im Arduino-Forum-Thread behoben ist. – per1234

Verwandte Themen