www.mikrocontroller.net

Forum: Compiler & IDEs Wertzuweisung


Autor: Markus C. (ljmarkus)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo.

Ich stehe gerade auf dem Schlauch.

in der config.h steht:
#define WERT1 0x00
#define WERT2 0x20
...

möchte ich in der main.c jetzt den Wert ändern mit

WERT1 = 0x01

dann bekomme ich die Fehlermeldung:
error: lvalue required as left operand of assiggment

System: WinAvr 20071221 mit ATmega1280


Danke, Markus

Autor: Stefan Ernst (sternst)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Markus C. wrote:

> möchte ich in der main.c jetzt den Wert ändern

Geht nicht. Du kannst Präprozessor-Konstanten nicht zur Laufzeit ändern. 
Am besten schnappst du dir das nächstbeste C-Buch, und liest mal nach, 
was der Präprozessor eigentlich macht. Und dann auch gleich noch, was 
Variablen sind.

Autor: Stefan B. (stefan) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Obacht WERT1 udn WERT2 sind Makros! Ändern geht zur Kompilierzeit 
nicht zur Laufzeit mit

#undef WERT1
#define WERT1 0x01

Autor: Markus C. (ljmarkus)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hmm, schade...

der Hintergrund ist der, es handelt sich dabei um MAC Adresse für den 
Webserver von Ullrich. Ich wollte eigendlich das er sich die MAC Adresse 
aus dem EEPROM holt, weil so brauche ich nicht für jeden Webserver 
seperate Updates erstellen weil der Webserver einen ETH Bootloader hat.

Autor: Lothar Miller (lkmiller) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Mach aus dem #define eine Variable.
uint_8 WERT1 = 0x00;
uint_8 WERT2 = 0x20;
Dann mußt du nur vor der Stelle, an der diese Werte verwendet werden, 
deine Adresse aus dem EEPROM holen und mit dieser Adresse arbeiten.

Langfristig könnte der Erwerb eines C-Buches auch nicht schaden ;-)

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.