Hallo,
für meinen WS2812 Treiber habe ich etliche Berechnungen mit dem
Präprozessor durchgeführt. Danach frage ich ab, ob das Ergebnis der
Berechnung negativ geworden ist. In den Berechnungen fließt auch die
Konstante F_CPU mit ein. Auf den Typ der Konstante habe ich leider
keinen Einfluss, da diese dem Compiler mit übergeben wird.
Für mich ergibt sich folgendes Problem:
Funktioniert:
1 | #define F_CPU 5L
|
2 | #define ZAHL 8
|
3 |
|
4 | #if ((F_CPU - ZAHL) < 0)
|
5 | #error
|
6 | #endif
|
Funktioniert leider nicht:
1 | #define F_CPU 5UL
|
2 | #define ZAHL 8
|
3 |
|
4 | #if ((F_CPU - ZAHL) < 0)
|
5 | #error
|
6 | #endif
|
Gibt es irgendeine Möglichkeit den Typ der symbolischen Konstante zu
ändern?
Gruß Andreas