Arduino: multiple files in der 1.0 IDE

Gast #2633512
Hallo Zusammen,

seit zwei Tagen versuche ich herauszubekommen, wie man mehrere Files mit 
der Arduino-IDE compilieren kann. Im Anhang habe ich das einfaches 
Beispiel. Obwohl das Headerfile eingebunden ist, wird die 
test()-Funktion nicht gefunden. Hat irgend jemand eine Idee?
Angehängte Dateien:
Gast
Deine test() ist in einem C-Quellcode definiert (Endung .c) und wird 
daher auch als C-Funktion übersetzt. Du sie deshalb in anderen 
Sourcefiles über das Includefile als C Funktion bekanntmachen.
1
extern "C" void test(void);
2
//     ^^^

Ohne diese Kennzeichnung wird beim Aufruf der Code und interner 
Symbolname für eine C++ Funktion erzeugt, bei der Definition aber der 
Code und interner Symbolname für eine C Funktion. Der Linker 
unterscheidet die aber genaustens und meldet, dass die C++ Funktion 
test() nirgends definiert ist.

Wenn du das nicht möchtest, benutze statt .c und .h die .cpp und .hpp 
Dateiendungen und arbeite durchgehend in C++.
Gast
Es ist mir noch ein neues Problem aufgefallen: Im cpp-Teil gibt es die 
Arduinofunktion

Serial.println("xyz");

In den C-Teilen kann ich diese aber nicht verwenden. Gibt es eine 
Möglichkeit, aus dem C-Teil eine Ausgabe auf die Serielle Schnittstele 
zu machen?

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 14 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.