Präprozessor #if anweisung

Gast #557284
Lesenswert?

Hallo,

ich versuche gerade eine Bedingte anweisung für verschieden 
Mikrocontroller zu schreiben:

Ich übergebe avr-gcc dazu mit der -D option um welchen Mikrokontroller 
es sich handelt.

avr-gcc -DMCU=atmega16
oder
avr-gcc -DMCU=atmega48

Im Quellcode schreibe ich dann:

#if (MCU == atmega48)
C-Code
#endif


Aber der C-Code wird immer berücksichtigt, egal welchen prozessor ich 
MCU zuweise. Kann mir wer sagen wo der Fehler liegt?

Viele Grüße

CMM
Moderator Persönliche Seite #557335
Lesenswert?

Peter Dannegger wrote:

> Sehr schön, die Frage ist bloß, wie kriegt man diese Namen raus?

Durch RTFM:

http://www.nongnu.org/avr-libc/user-manual/using_tools.html

> Gibt es vielleicht einen Compilerschalter, um ein Listfile mit allen
> internen Symbolen zu erzeugen?

gcc -E -dM gibt die Liste aller Makros mit ihren Werten, die sie am
Ende des preprocessing haben, auf stdout aus.  Sollte man sinnvoller-
weise wohl gleich noch duch »sort« pipen.  Wenn du das in einer Datei
haben willst, lenkst du die Ausgabe in eine Datei um.  (Ich pipe es
immer nach »less« und lese es mir gleich am Bildschirm durch.)

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren