Hallo an Alle!

Ich kämpfe jetzt schon ein paar Tage lang (mal wieder, muss ich leider sagen) mit dem Präprozessor. Den Ladewert eines Timers möchte ich in Abhängigkeit von der Taktfrequenz durch den Präprozessor berechnen lassen. Ich hatte schon mal ein ähnliches Problem, seinerzeit war das Variablenformat das Problem.

Code:
#define Systemtakt              100
#define F_CPU               14745600
#define LadewertTimer0       (256-((F_CPU/1024)/Systemtakt))

#if (LaderwertTimer0 == 112)
    #warning "Alles klar!!"
#endif
sollte eigentlich als Ergebniss 112 ergeben. Tut es aber nicht. Hier liegt vermutlich auch das Problem beim Variablenformat. F_CPU ist eine uint32_t. Daher wird auch das Ergebniss als uint32_t gespeichert (?). Es reicht aber eine uint8_t. Wie kann man eine entsprechende Zuweisung erzwingen? Cast-Operator, vielleicht? Aber welcher bei uint8_t?

Bei der Gelegenheit. Gibt es einen eleganteren Weg um das Ergebniss von Präprozessorberechnungen zu prüfen oder vielleicht sogar im Klartext an zu zeigen?

Bin wie immer für jeden Tip dankbar.


Viele Grüße

Bot-Builder