Hallo zusammen,
ich bin an einem Punkt angekommen wo ich gerne parallel zu meinem .ino Projekt Klassen verwenden würde.
Ich hab gelesen dass man über den Tab-Mechanismus in der IDE einfach pro hinzuzufügender Klasse zwei Files erstellt. Eine mit Endung .h und eine mit Endung .cpp.
Dann hab ich 3 Tabs:
Nr. 1: Mein Sketch mit .ino als Dateiendung
Nr. 2+3: Meine .h und .cpp File für die eigene Klasse
Funktioniert nicht. Das includen des Headers in der .ino geht noch gut und liefert keinen Fehler. Aber sobald ich eine Instanz der Klasse ins Leben rufen will bekomme ich:
error: 'Xyz' does not name a type
Um Fehler im eigenen Code auszuschließen und für euch reproduzierbar zu machen, hier das gesamte Szenario basierend auf existierendem Beispielcode der für sich eigentlich funktionieren sollte:
- Arduino IDE öffnen
- AnalogReadSerial.ino Beispielsketch öffnen
- Diesen als "TestAnalogReadSerial" Sketch speichern
--> Das als erste Grundlage damit überhaupt etwas kompilierbares da ist - Zwei neue Tabs anlegen. Den einen als "Morse.h", den anderen als "Morse.cpp". Den Code hab ich hier her: http://arduino.cc/en/Hacking/LibraryTutorial
- Im ersten Tab (TestAnalogReadSerial) oben vor der setup() Methode folgende zwei Zeilen einfügen:
#include <Morse.h>
Morse morse(3);
- Überprüfen/Kompilieren
--> Fehler: Siehe Bild im Anhang.
Lasse ich die zweite Zeile weg so dass nur noch der Include da ist, gibts keinen Fehler.
Verändere ich den Include in etwas ungültiges (z.B. "#include <MorseXXX.h>"), dann gibt's wieder einen Fehler.
Für mich heisst das: Der Include funktioniert tendentiell. Aber irgendwas geht noch schief.
Wenn ich die .cpp und .h File in ein eigenes Verzeichnis in den "libraries" Ordner stecke dann funktioniert es. Aber ich möchte gar keine separate Library daraus machen.
Any ideas?
Gruß
Alex