Tabs zicken rum?

Hallöle. Nervig: ich versuche grade mit dem Protoboard zu spielen. Es gibt drei Tabs. Im ersten (links) wird alles initialisiert, und auch das TFT-erfolgreich- initialisiert. Im Tab Display will ich die Display-ausgaben unterbringen. Aber da zickt der Compiler herum: 'tft' was not declared in this scope

Das mache ich inzwischen in diversen anderen Programmen auch-und da läufts.

void startMaske()
{
  tft.fillScreen(schwarz);
  tft.fillRoundRect(0,0,128,10,5,blau); 
}

Initialisiert wird es, wie üblich, bereits in setup():

void setup() 
{
  Serial.begin(9600);
  pinMode(led1Pin,OUTPUT);
  pinMode(buttonPin,INPUT_PULLUP);
  Adafruit_ST7735 tft = Adafruit_ST7735(TFT_CS,  TFT_DC, TFT_RST);
  tft.initR(INITR_BLACKTAB);
  tft.fillScreen(schwarz);         // Display löschen

Bis dahin geht das auch. Das Display läuft hier bereits. Was zum Kuckuck ist das denn jetzt wieder? IDE ist die 1.6.7

Hallo,

irgendwas gab es mit der Namensvergabe und dessen Einbindung zubeachten. Suche mal nach "arduino ide tab order" o.s.ä. Am sichersten geht man wohl, wenn man die Tabs als Header Datei schreibt und diese im Hauptsketch in der richtigen Reihenfolge einbindet. Dann sollte die Namensvergabe und daraus resultierende möglicherweise falsche alphabetische Einbindung egal sein.

Wobei meine IDE auch gefühlt manchmal tüchtigen Unsinn anzeigt in Bezug auf Fehler. Die Syntaxfehler liegen öfters völlig woanders als im angemeckerten Tab. Vielleicht ist das aber auch nur so wenn man Tabs nutzt.

Tabs werden in alphabetischer Reihenfolge kompiliert.

Eigentlich werden sie nur in eine .cpp Datei kopiert und dann kompiliert. Das ist ein Grund weshalb die Lokalisierung von Fehlern nicht funktionieren kann.

Es geht inzwischen, indem ich im bemängelten Tab das Display kurzerhand nochmal initialisiere. Die können mich doch mal-komisch, dass der Compiler da nicht meckert, dass ich es zweimal tu. :smiling_imp:

Und ja: das mit den Tippfehlern kenne ich auch. Das aber kann man dem Compiler wirklich nicht vorwerfen, weil der halt der Reihe nach vor geht. Da tauchen Fehler erst ne Zeile später auf (und können dann durchaus in nem ganz anderen Tab liegen).

Grundsätzlich finde ich die Tabs inzwischen genial, weil man so entschieden schneller irgendwas wieder findet. Bei Bedarf kann man einfach mal ne Datei austauschen.... Aber es muss doch nich ausgerechnet auf russische Art umgesetzt werden *grmbl

Hallo,

ändere mal bitte die Namen aller zusätzlichen Tabs so um, dass sie alphabetisch gesehen vor dem Namen vom Hauptsketch liegen. Meinetwegen bei allen ein underline davor.

Hallo,

@ Sereni wenn man daraus reine Headerfiles macht und diese in der richtigen Reihenfolge einbindet, sollte alles stimmen. Oder? Dann spart man sich das mit den Namen rumfummeln.

Ja, Header werden anders behandelt

Gelöst: Wie meistens sass der Fehler nen halben Meter vorm Laptop. :blush: Wundert mich, dass es niemandem aufgefallen ist: im ersten Beitrag sieht man ihn. Ist eigentlich klar: auch setup() ist nur ne Routine. Alles, was ich dort deklariere, wirkt nicht global, daher musste die Zeile:

Adafruit_ST7735 tft = Adafruit_ST7735(TFT_CS,  TFT_DC, TFT_RST);

ganz einfach in den Header. Und schon isses gut....beim Keyboard hatte ich es nämlich auch so gemacht!