-         
Ergebnis 1 bis 6 von 6

Thema: LED ....ein Verbotener Variablenname beim Arduino ???

  1. #1
    Erfahrener Benutzer Roboter Genie Avatar von oderlachs
    Registriert seit
    17.05.2010
    Ort
    Oderberg
    Alter
    67
    Beiträge
    1.133
    Blog-Einträge
    1

    LED ....ein Verbotener Variablenname beim Arduino ???

    Anzeige

    Heute habe ich lange gegrübelt was ich falsch mache, bis ich der Variablen "LED" einen anderen Namen "Led" zugewiesen habe und der Sketch sich compilieren lies.
    Code:
    /*
      Blink Zeile
      
    */
    
    int Led[8] = {0,1,2,3,4,5,6,7};
    ;
    
    void setup() {
      for (int i= 0;i<= 07;i++)
      {
      pinMode(Led[i], OUTPUT);
      }
    }
    
    void loop() 
    {
      for (int i=0;i<= 07;i++)
      { 
      digitalWrite(Led[i], HIGH);  
      delay(100);                       
      digitalWrite(Led[i], LOW);    
      delay(100); 
      }  
    }
    Es war mir bisher unbekannt das ich diesen Namen LED nicht verwenden darf.....weil es meine Angewohnheit ist,
    so was (Variablen, eigene Definitionen) alles GROSS zu schreiben und auch mit LED kein Problem hatte.
    Oder soll es am Array liegen, was ich auch nicht nachvollziehen kann..könnte ???
    Habe schon nachgedacht das es vielleicht an der neueren Arduinoversion > 1.8 liegen könnte ??
    Damit Ihr Euch nicht wundert über den Code, er ist für ein Atmega32L Board, das per Arduino-IDE programmiert wird.

    Was sagt der Fachmann dazu ???

    Über eine eventuelle Antwort wäre ich dankbar

    Gruss Gerhard
    Arduinos, STK-500(AVR), EasyPIC-40, PICKIT 3 & MPLABX-IDE , Linux Mint

  2. #2
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    07.03.2011
    Beiträge
    1.487
    Zitat Zitat von oderlachs Beitrag anzeigen
    Heute habe ich lange gegrübelt was ich falsch mache, bis ich der Variablen "LED" einen anderen Namen "Led" zugewiesen habe und der Sketch sich compilieren lies.
    Die wirkliche Fehlermeldung wäre hilfreich.
    Es war mir bisher unbekannt das ich diesen Namen LED nicht verwenden darf
    Der Code deutet auf Arduino und C++ hin, da gelten aber wohl die gleichen Regeln wie in C. Da sind nur die reservierten Worte wie if, case, etc verboten, alles andere ist erlaubt. Bestimmte Namen sollte man aber nach den üblichen Konventionen vermeiden, z.B. die mit einem Unterstrich anfangen.
    .....weil es meine Angewohnheit ist,
    so was (Variablen, eigene Definitionen) alles GROSS zu schreiben
    Das ist unglücklich, weil diese Schreibweise für Präprozessor-Macros üblich ist. Fehler sind so leichter zu erkennen, weil der Compiler ein doppeltes #define für den gleichen Macroname leicht erkennt und anzeigt.

    Sollte ein #define LED xxxx in irgeneinem der Headerfiles das Problem sein, müsste die IDE einem etwas anzeigen, sobald man LED ausgeschrieben hat.

    Also LED als Variablenname ist sicher nicht verboten, es wird woanders schon benutzt sein.

    MfG Klebwax
    Strom fließt auch durch krumme Drähte !

  3. #3
    Erfahrener Benutzer Robotik Einstein Avatar von i_make_it
    Registriert seit
    29.07.2008
    Ort
    Raum DA
    Alter
    49
    Beiträge
    2.814
    Such mal unterhalb von Arduino/Libraries/ nach Keywords.txt (jede Library kann eine haben, muß aber nicht).
    Wenn meim Start der Arduino IDE die Librarys eingelesen werden, werden auch die dort definierten Keywords eingelesen.
    Selbst wenn eine nakte IDE kein Problem mit "LED" hat, kann es sein das einfach das Vorhanden sein einer Lib in der das als Keyword definiert ist, das Verhalten verändert.
    Selbst wenn man sie nicht included.
    Genauso ist das mit Libs die nicht mehr gepflegt werden und die plötzlich beim Compilieren mit Warnungen aufpoppen obwohl man sie im aktuellen Sketch nicht nutzt.
    Der einfachste Weg ist dann den entsprechenden Lib Ordner einfach löschen oder wohin zu verschieben, wo die IDE sie nicht sucht.

    https://oberguru.net/elektronik/ardu...words.txt.html
    Geändert von i_make_it (13.03.2018 um 06:29 Uhr)

  4. #4
    Erfahrener Benutzer Roboter Genie Avatar von oderlachs
    Registriert seit
    17.05.2010
    Ort
    Oderberg
    Alter
    67
    Beiträge
    1.133
    Blog-Einträge
    1
    Danke Euch...
    Ja Klebwax, Du sagst es "reservierte Wörter/Namen" ich bin nicht drauf gekommen, "Speicherleck"

    Nun bislang habe ich "LED" in den keywort.txt nicht gefunden ...sind ja ..zig Dateien , aber ich wollte die Compilermeldung nochmals sehen.
    So habe ich aus "Led" wieder "LED" gemacht(Suchen/Ersetzen) und siehe da..... keine Fehler, compiliert und funktioniert.

    Da soll mir doch mal wer einen Storch braten, warum ging es erst nicht und jetzt doch..keine Veränderung am PC, Arduino, Libs usw... ???

    Gruss

    Gerhard
    Arduinos, STK-500(AVR), EasyPIC-40, PICKIT 3 & MPLABX-IDE , Linux Mint

  5. #5
    Erfahrener Benutzer Robotik Einstein Avatar von i_make_it
    Registriert seit
    29.07.2008
    Ort
    Raum DA
    Alter
    49
    Beiträge
    2.814
    Ghost in the machine?

    Aber da bestätigt sich wider mal das Sprichwort:
    Have you try to turn it off and on again?

    Rebooten noch mal probieren.
    Wenns dann wieder geht, auf den unfähigen OS Hersteller, Applikationshersteller etc. schimpfen und es unter "unnötige Verzögerung" verbuchen.

    Bei mir haben sich auch schon zig Libs mit ihren keywort.txt angesammelt.
    Oft wenn man mal versuchen will ob man sich mit einer Lib xy nicht das Leben einfacher machen kann.

    Sinnvoll ist sich eine Textdatei zu machen, in der man jede Lib die man installiert reinschreibt und warum man die installiert hat, bzw. in welchem Projekt man die tatsächlich nutzt.
    Dann kann man auch mal nachträglich wieder entrümpeln.

  6. #6
    Erfahrener Benutzer Roboter Genie Avatar von oderlachs
    Registriert seit
    17.05.2010
    Ort
    Oderberg
    Alter
    67
    Beiträge
    1.133
    Blog-Einträge
    1
    Du hast recht i_make_it !

    Es sammelt sich wirklich was an , ein "locate -i keywords.txt"(linux) ergab 432 Dateien im Arduinobereich.....
    Ich verwende schon mehrere Skechbook-Ordner(Namen) wegen der Übersichtlichkeit und auch der beiden verschiedenen Arduino Versionen.
    Brauch da noch sowas Uraltes für meine ersten Roboter und Uralt Ardu - Clone (Made in Poland).
    Muss mal sehen nach welcher Ordnungsmethode ich da Übersicht reinbringe.

    Gerhard

    P.S. man lernt doch nie aus
    Arduinos, STK-500(AVR), EasyPIC-40, PICKIT 3 & MPLABX-IDE , Linux Mint

Ähnliche Themen

  1. NodeMCU an Arduino-IDE, Fehler beim Kompilieren
    Von gkd im Forum NodeMCU-Board und ESP8266, ESP32-Serie
    Antworten: 5
    Letzter Beitrag: 28.05.2017, 22:21
  2. Probleme beim Hochladen auf Arduino Uno
    Von Unregistriert im Forum Arduino -Plattform
    Antworten: 1
    Letzter Beitrag: 12.02.2017, 17:25
  3. Welche Möglichkeiten der Fehlersuche hat man beim Arduino?
    Von fredyxx im Forum Arduino -Plattform
    Antworten: 68
    Letzter Beitrag: 21.09.2016, 10:24
  4. [ERLEDIGT] NFC Shield + Arduino Uno Problem beim Schreiben
    Von Jonas15 im Forum Microcontroller allgemeine Fragen/Andere Microcontroller
    Antworten: 0
    Letzter Beitrag: 04.05.2012, 15:22
  5. Problem beim Header schreiben für Arduino
    Von Gorn im Forum Arduino -Plattform
    Antworten: 1
    Letzter Beitrag: 06.02.2012, 15:40

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •