Kann man bei den Präprozessor ifs den verwendeten AVR-Typ erfragen?

Gast #1956110
Lesenswert?

Wenn eine C-Datei kompiliert wird, dann liest ja erst mal der 
Präprozessor alles durch und führt die im zugewiesenen Befehle aus...
Aber: kann man z.B. #if MMCU == mega128 ... #endif benutzen oder kriegt 
der den Typ nicht von make übergeben (des kriegts ja per Commandline 
mitgeteilt)?
Und wie stehts mit der Quarzfrequenz und dem Stacktop (besonders bei 
Teilen mit xmem interessant)...
Gast #1956129
Lesenswert?

OK, danke das ist schonmal eine gute Nachricht (wenigstens das geht), 
aber wie stehts mit der Taktfrequenz (die steht soweit ich weiss im 
makefile), der stack is jetz nich so wichtig (wär aber halt perfekt).
#1956160
Lesenswert?

Hans Mayer schrieb:
> #ifndef F_CPU
> #define F_CPU 15999550
> #endif
>
> haengt wohl von der programmierumgebung ab, ob's definiert ist oder
> nicht.

Wobei ich ehrlich gesagt immer mehr dazu tendiere, ein nicht vorhandenes 
F_CPU als Fehler anzusehen und keinen Defaultwert dafür vorzusehen. Wenn 
man erst mal oft genug mit diesem Default auf die Schnauze gefallen ist, 
zieht man eine Fehlermeldung vor.
#1956164
Lesenswert?

Max schrieb:
> OK, danke das ist schonmal eine gute Nachricht (wenigstens das geht),
> aber wie stehts mit der Taktfrequenz (die steht soweit ich weiss im
> makefile)

sieh dir bitte den Compileraufruf an.
Alles was dort in der Commandline (beim gcc) mittels -D übergeben wird, 
steht dir im Code als vordefinierts Makro zur Verfügung.

Bei anderen Compilern heißt das Commandline Argument anders, aber einen 
derartigen Mechanismus kennt jeder Compiler.

Dann brauchst du hier nicht mehr lange fragen, was von der Commandline 
kommt und was nicht.

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