Arduino: Programmstruktur übersichtlich gestalten
Hallo Zusammen Ich plane ein relativ langes Programm für meinen Arduino zu schreiben und würde es gerne übersichtlich gestalten. Da ich zuvor mit RoboPro von Fischer Technik kam ich in den Genuss von Unterprogrammen. Jetzt ist meine Frage was ich mit dem Befehl #inlcude alles importieren kann und wie so eine klasse, bibliothek... aufgebaut. Kann mir irgendjemand eine link zu einer anleitung o.ä. schicken?
Danke im Vorraus
3 Antworten
Mit #include kann man alle Dateien importieren, die auf .h enden (evtl. auch andere). In solchen Dateien stehen Definitionen, die man in mehreren Quelldateien (.c oder .cpp) benötigt, beispielsweise Funktionsdefinitionen. Damit weiß der Compiler dann in einer Codedatei, die diese Headerdatei (.h) einbindet (mit #include), dass das, was in dem Header drinsteht, irgendwo existiert. Wo genau, ist erst mal egal. Ein Beispiel:
//In der Headerdatei:
void foo(int var);
Somit kennt der Compiler in jeder Quelldatei, die diese Headerdatei einbindet, die Funktion foo() und weiß deren Parameter und Rückgabewert. Erst ganz zum Schluss wird dann nach der tatsächlichen Implementierung gesucht, die in irgend einer anderen Quelldatei liegen kann.
Diese andere Quelldatei kann man entweder direkt mit hineinlinken (linken = verknüpfen; also die "leeren" Definitionen werden mit den "echten" Funktionen verknüpft) oder erst mal nicht weiterverwenden. Wenn man sie nicht weiterverwendet, kann man sie noch als Bibliothek einsetzen - sie gehört dann nicht wirklich zum Projekt, sondern ist ein eigenes Projekt; man kann die Funktionen aber dennoch verwenden, wenn man sie hineinlinkt.
Jetzt überlegst du dir, was für Funktionen du eigentlich so brauchst. Diese gliederst du dann je nach Verwendungszweck, also z.B. kann eine Quelldatei Funktionen für den Timer, eine andere Funktionen zum Ansteuern von LEDs enthalten. Die Funktionen schreibst du dann in Headerdateien, damit auch andere Dateien sie aufrufen können. Wie das geht, wird in jedem halbwegs zu gebrauchenden Buch zu C erklärt.
- Entwickle einen Plan über den generellen Programmablauf.
- Gliedere ihn in Funktionen und ggf. Klassen.
- Sortiere diese nach ihrer Bedeutung in einzelne Module-
- Schreibe für jedes Modul einen allgemeinen Header und eine Quelldatei.
So macht man es zumindets bei C++.
wie wäre es mit mehreren methoden?