Forum: Mikrocontroller und Digitale Elektronik Arduino: Datei in Unterverzeichnis includieren, was läuft schief?


von Seppel (Gast)


Lesenswert?

Hallo,

ich habe in einem Sketch-Dateiordner einen Unterordner angelegt.

1) Warum muss ich den geasmten Pfad angeben um die Headerdatei zu 
includieren, also:

#include 
<C:\Users\seppel\Documents\Arduino\My_WaveGen\pwm_mod\pwm_mod.h>

2) Ich habe in der Headerdatei eine Funktion, die er aber nicht finden 
kann:

Header: void mod_pwm(void);

Source: void mod_pwm(void){ //blabla}

INO: mod_pwm(); // 7,8 Khz fuer Pin 5 und 5


Output:
My_WaveGen.cpp.o: In function `setup':
C:\software\install\arduino-1.6.5-r5/My_WaveGen.ino:30: undefined 
reference to `mod_pwm()'
collect2.exe: error: ld returned 1 exit status
Fehler beim Kompilieren.


Kann mir jemand sagen woran es liegt, ich komme nicht drauf.

Vielen Dank,

Grüße

Seppel

von Peter II (Gast)


Lesenswert?

Seppel schrieb:
> Kann mir jemand sagen woran es liegt, ich komme nicht drauf.

es liegt nicht an der Headerdatei, das ist ein Fehler vom Linker. Du 
scheinst die .C Datei wo die Funktion vorhanden ist nicht mit zu bauen.

von Eric B. (beric)


Lesenswert?

Seppel schrieb:
> #include
> <C:\Users\seppel\Documents\Arduino\My_WaveGen\pwm_mod\pwm_mod.h>
1
#include "pwm_mod/pwm_mod.h"
sollte reichen. Für 'eigene' Header-Dateien besser "..." benutzen; <...> 
ist für System-includes.

Wie aber Peter II schon sagte: der Fehler kommt vom Linker, nicht vom 
Compiler.

von Manfred (Gast)


Lesenswert?

Seppel schrieb:
> 1) Warum muss ich den geasmten Pfad angeben um die Headerdatei zu
> includieren,
Vielleicht liest Du mal die Anleitung(en) zur Arduino-IDE, wie man 
zusätzliche .h-Dateien ablegt?

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.