PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Define Berechnung anzeigen lassen



MrOuzo
10.03.2012, 21:38
Hi,

ich suche eine Möglichkeit, berechnete defines beim Kompilieren anzeigen zu lassen.

Also z.B.

#define CLOCK (F_CPU / BAUDRATE * 100)
oder


#define VA_CFG_BITS VA_EEStart
#define VA_OUTPULSE VA_CFG_BITS +1
#define VA_IMPDELAY VA_OUTPULSE +1
#define VA_LOG_TIMER VA_IMPDELAY +1

davon möchte ich jetzt den Inhalt von CLOCK oder VA_LOG_TIMER ausgegeben bekommen

Danke
MrOuzo

sternst
11.03.2012, 10:39
ich suche eine Möglichkeit, berechnete defines beim Kompilieren anzeigen zu lassen.Es gibt keine "berechnete defines". Der Präprozessor rechnet nichts aus (*), sondern macht nur Textersetzungen. Wenn du
#define CLOCK (F_CPU / BAUDRATE * 100)schreibst, dann wird nur im Source überall "CLOCK" durch "(F_CPU / BAUDRATE * 100)" ersetzt. Die Berechnung macht der Compiler.


(*): Mit einer Ausnahme, wenn er selber das Ergebnis braucht für #if oder #elif. Die einzige Möglichkeit, sich da was anzeigen zu lassen, ist daher sowas:

#if CLOCK == 42
# warning "CLOCK ist 42"
#elif CLOCK > 666
# warning "CLOCK ist teuflisch groß"
...

MrOuzo
11.03.2012, 12:36
Hallo sternst,

dachte ich mir... schade, dann komme ich wohl auch in meinen 2. Beispiel nicht weiter, dort möchte ich die defines für ein Array verwenden, und will den Index wissen, ohne jedesmal nachzuzählen.

Also array[VA_LOG_TIMER] ist welche Stelle im Array....

Gruß
MrOuzo

SprinterSB
11.03.2012, 18:26
Und was musst du da ausrechnen?

Es ist das VA_LOG_TIMER-te Element des Arrays, wobei die Zählung bei 0 beginnt.

MrOuzo
12.03.2012, 00:43
Hi,
ganz einfach, den Index brauche ich einer Webpage, damit ich per Submit Button Werte in das Array schicken kann.
Also z.B. eine Checkbox soll den Inhalt von Array[VA_IMPDELAY] verändern. Auf der Webpage kann ich leider nur den Index als Zahl eintragen

Gruß
MrOuzo