Wie strukturiert man ein größeres Programm?

Guten morgen :slight_smile:

Ich habe in meinem Programm im wesentlichen folgende Programmteile:
RFID lesen und verarbeiten
GPS Koordinaten lesen
Kompass lesen
Heading / Bearing berechnen
Motor-steuern

Ich fürchte, darüber würde ich schnell den Überblick verlieren wenn ich es alles von oben nach unten durchschreibe :slight_smile:

Daher würde ich die einzelnen Teile gerne auslagern in einzelne Bibliotheken. Vor allem könnte ich später einzelne Teile leicht austauschen oder für andere Projekte recyceln.

Ist das so sinnvoll, oder gibt es da andere elegante Wege Programmteile zu verlinken?

Besten Dank

Andi

Sorry, C ist für mich völliges Neuland

Die IDE hat rechts oben einen Button mit einem Pfeil nach rechts.
Wenn Du da mal draufklickst, kommt ein Menü.
Wähl den Menüpunkt "New Tab" und vergieb dann in der Eingabezeile unten einen sinnvollen Dateinamen (ohne Erweiterung).
Damit werden in Deinem Projektverzeichnis weitere Programmdateien angelegt, beim compilieren werden sie alle zusammengefügt.
Erstell also z.B. eine Datei RFID und lagere alle RFID-spezifischen Funktionen dort aus. So bleiben auch größere Programme übersichtlich. Und wenn Du die RFID Funktionen in einem anderen Projekt nochmal brauchen kannst, kopier einfach die Datei.

Eine Bibliothek zu erstellen ist in dem Moment sinnvoll (und auch nur dann), wenn Du die Funktionen 1:1 immer wieder verwenden kannst.

Ich mach es mittlerweile so, das ich die IDE nur noch zum Übertragen und Compilieren des Programms nutze.

Da meine Projekte auch irgend wann mehr als 5000 Zeilen hatten bin ich zu Visual Studio gewechselt.
Da habe ich zwar kein Syntax Highlighting für die Arduino Befehle, aber eine Übersichtliche Umgebung.

Danke MaFu.
Ich denke das ist genau das, was ich gesucht habe :slight_smile:
Somit habe ich keinen Stress wenn ich eine bestimmte Bibliothek in mehreren Programmteilen öfter benötige :slight_smile:

Visual Studio?
Da gibt es eine Arduino Erweiterung für, oder? Hab mich damit noch nie beschäftigt. Ich glaube für den Anfang bleibe ich mal bei der normalen IDE, bevor ich mich noch mit VisualStudio vertraut mache. Mein Problem ginge schon damit los, welche Version von Visual Studio ich nun brauche, bzw. was die jeweils sinnvolles können. Bleibe wohl vorsichtshalber bei der einfachen IDE :slight_smile:

Ich nutze nun seit einiger Zeit Google Code Archive - Long-term storage for Google Code Project Hosting.

Die IDE kann sowohl Arduino (PDE oder C) als auch mit "normalen" Atmels umgehen. Hat Syntax highlighting (Auch speziell für Arduino) und unterstützt mehrere Dateien in einem Projekt. Bislang ist die IDE ganz einfach unübertroffen - selbst VS, was ich sonst gerne nutze, klappt nicht soo gut (in meinen Augen)..

Die besten Wege ein Programm zu struktuieren sind Unterprogramme oder Bibliotheken. Wenn man ein Unterprogramm ändert wirkt sich dies nur auf das aktuelle Programm aus. Bei einer Bibliothek hingegen auf alle Programme welche auf diese zurückgreifen.

@Megaionstorm
Einige Begriffserklährung: C hat keine Unterprogramme sondern Funktionen.
Grüße Uwe

Eine Procedure (Pascal/Delphi) und eine Function sind beides Unterprogramme. Ein Unterprogramm ist eine Subroutine bei der das Programm nach Abarbeitung wieder an die Stelle zurückkehrt von der die Subroutine aus aufgerufen wurde. Ähnlich dem GOSUB und RETURN in Basic. Unterprogramm ist hierbei ein Oberbegriff für Proceduren und Functionen. Wobei eine Procedure keinen Rückgabewert liefert und eine Function hingegen schon ! Wobei eine Function mit einem VOID schon fast eine Procedure ist.

Bis jetzt musste ich das noch nicht machen. Aber da die grundlegende Sprache C ist kann man sicher ganz normal programmieren. dH. n paar C-Files udn Headers machen und diese dann im Hauptgrog. benutzen.

Aber vielleicht hat die IDE damit Probleme?