Sketch in TABs aufteilen

Hallo in die Runde,

leider werde ich aus den Einträgen zum Thema TABs hier noch nicht so ganz schlau - was sicher an mir liegt :wink:

Ich würde gern einen Sketch etwas übersichtlicher gestalten, indem ich unterschiedliche TABs nutze. Mir ist nur im Moment einfach nicht ganz klar, wie das grundsätzlich aussehen muss und wie das dann alles beim kompilieren zusammenspielt bzw welche Date welche Endung doer Namen haben muss.

Ich würde gern mit einem einfachen Beispiel beginnen, um das Thema besser verstehen zu können.

Hat dazu evtl. jemand ein paar kurze Infos oder besser noch einfache Beispiele?

Viele Grüße
Touranie

Tabs sind einfach .ino Dateien. Die werden von der IDE in alphabetischer Reihenfolge in eine .cpp Datei kopiert und diese wird kompiliert. Das muss man beachten wenn man Variablen und Konstanten über Tabs hinaus verwendet. Sonst sind manche Sachen in anderen Tabs nicht bekannt.

Ein Weg das zu umgehen ist bestimmte Variablen in einen Header auszulagern und diesen inkludieren, oder man nennt eine Datei a.ino, so dass so ganz oben kommt. z.B. aGlobal.ino für globale Variablen.
Es kann auch vorkommen, dass die Tab Namen zufällig passen, aber das ist nicht immer der Fall.

touranie:
Hat dazu evtl. jemand ein paar kurze Infos oder besser noch einfache Beispiele?

Sehr kurz: In Tabs definierst Du Funktionen.

Gruß

Gregor

nur die Funktionen? Kann ich keine Globalen Variablen in einem Tab ablegen? So hatte ich es jetzt durch den Post von Serenifly verstanden.

ich frage mich außerdem, wie der Sketch den richtigen Tab mit der richtigen Funktion findet?

touranie:
nur die Funktionen? Kann ich keine Globalen Variablen in einem Tab ablegen? So hatte ich es jetzt durch den Post von Serenifly verstanden.

Du kannst natürlich auch „Hallo Tante Trudi!“ reinschreiben. Wenn Du das als Kommentar definierst, ist das vollkommen okay.

touranie:
ich frage mich außerdem, wie der Sketch den richtigen Tab mit der richtigen Funktion findet?

Der Sketch findet nichts.

Was Du Dich fragst, hat damit zu tun, wie die Dinge automagisch funktionieren. Was Guck mal nach „Toolchain“. Da gibt es sicher viel zu lesen. Einen Teil hat Serenifly schon erzählt.

Gruß

Gregor

ich habe dir mal ein kleines Programm mit Tab's geschrieben. Es wird mit fade_up_down_2 gestartet.

fade_up_down_2.zip (1.4 KB)

touranie:
ich frage mich außerdem, wie der Sketch den richtigen Tab mit der richtigen Funktion findet?

Wie gesagt werden die einzelnen Dateien lediglich in alphabetischer Reihenfolge in eine andere Datei kopiert. Das geschieht alles automatisch im Hintergrund wenn man den Sketch kompiliert.

Ok, soweit verstanden. Ich habe void_loop, void_setup und zwei kleine Funktionen auch schon in separaten TABs untergebracht. Das läuft problemlos!

Nun habe ich aber im meinem Loop immer noch mehrere IF Schleifen. Könnte man die auch separat in einen TAB packen?
Und wie schaut es mit den Variablen aus, die ich dort mit einem Wert befülle. Wurde diese dann weiterhin für alle TABs "bekannt" sein?

Mach's doch einfach wie ich: ausprobieren

if-Schleifen gibt es nicht. In Tabs können wie einer normalen Datei auch Funktionen, Konstanten, Variablen und structs/Klassen stehen. Dinge wie if-Abfragen oder Schleifen können nicht außerhalb von Funktionen existieren!

Ja, ausprobieren ist immer gut, da bin ich gerade dabei.
Das mit den IF Schleifen hatte ich mir schon gedacht. Mein Ansatz wäre nun die IF Schleife durch eine Funktion zu ersetzen - im Moment will mir das noch nicht ganz gelingen, aber ich bastel da mal weiter...

ardubu:
ich habe dir mal ein kleines Programm mit Tab's geschrieben. Es wird mit fade_up_down_2 gestartet.

das ist cool (aber jetzt raucht meine Birne noch mehr)
wieder was gelernt.
Danke
mfg.
Herbert