Markus schrieb:
> bisher habe ich einfach ein array, dass array jetzt einfach mit dem
> define zu füllen anstatt direkt mit den Werten macht nicht so einen
> großen Sinn...
Das kommt drauf an. Im Zusammenspiel mit anderen Präprozessor
Anweisungen kann das durchaus Sinn machen
1 | #ifdef TEST_MODE
|
2 | #define MODI 10, 20, 30, 40
|
3 | #else
|
4 | #define MODI 1, 2, 4, 5
|
5 | #endif
|
6 |
|
7 | uint8_t PWM_Values[] = { MODI };
|
je nachdem, ob das Makro TEST_MODE vor dieser Codestelle definert war
oder nicht, wird das Array mit anderen Werten initialisiert, was zb zum
Debuggen nützlich sein kann, weil sich bei einer 8-Bit PWM die PWM Werte
für 10, 20, 30, 40 mit einer LED gut unterscheiden lassen, die Werte für
1, 2, 4 und 5 aber vielleicht nicht.
Oder vielleicht 'errechnet' sich einer der Werte bereits zur Compilezeit
aus einem anderen Wert zb der µC-Taktfrequenz die in F_CPU steht.
Ob etwas Sinn macht oder nicht, kann man nicht a priori an irgendetwas
fest machen. Allerdings: Der Präprozessor macht Textersetzungen, ehe der
Compiler den Programmtext zu Gesicht bekommt. Nicht mehr und nicht
weniger. Was du dann daraus machst, ist deine Sache.