Hallo zusammen,
ich frage hier einfach mal mit der Bitte um einen freundlichen Verweis auf eine Quelle.
Mir ist zur Zeit der Zusammenhang der Dateien mit den o.g. Dateiendungen überhaupt nicht klar.
Am Beispiel des "Hello.World" Beispiels ist mir dies bewußt geworden.
Ich hatte die LiquidCrystal-Library aufgrund eines Fehlers geändert.
(ein Fehler, der in meinem Versuchsaufbau mit einem TC1604A-01 LCD-Modul beim Anssprechen der 3. und 4. Reihe sichtbar wurde, nicht zwangsläufig ein grundsätzlicher Fehler!).
Diese besagte originale Library (LiquidCrystal.cpp) liegt bei meinem Linux unter /usr/share/Arduino/libraries/LiquidCrystal.
Für meine Zwecke habe ich eine Kopie dieser Datei und auch die zugehörige Header-Datei in einen Ordner in meinem Sketchkook kopiert, in dem auch mein eigenes Beispiel-Sketch "HalloWelt" liegt.
In meinem "HalloWelt" beschreibe ich die 3. und 4. Zeile meines 16x4 Displays und dafür habe ich die "LiquidCrystal.cpp" in der entscheidenden Routine (setCursor) im Offset geändert und sicherheitshalber umbenannt.
Ergebnis:
massenhaft Compiler-Fehlermeldungen, die ich dahin deute, dass der Compiler meine umbenannte *.cpp Datei nicht findet, demzufolge zahlreiche Bezüge fehlen.
Versuchsweise habe ich, entgegen meiner Überzeugung, die originale "LiquidCrystall.cpp" an den entscheidenden Stellen geändert... und prompt läuft es wie erwünscht!
Daraus muß ich schließen, dass die IDE auch bei einem Sketch aus dem Sketchbook grundsätzlich die Libs aus dem originalen Verzeichnis holt... !?
Dennoch bleibt eine weitere Frage:
mein Sketch "Hallo Welt" / das originale Beispiel "HelloWorld" binden beim Kompilieren per $include die Datei "LiquidCrystal.h" ein,
die "LiquidCrystal.cpp" original oder modifiziert rufen ebenfalls per $include diese Header-Datei auf...
wo, wann wird eigentlich die "LiquidCrystal.cpp" mit den Low- und High-Level-Routinen für das LCD aufgerufen???
Gruß
Manfred