Hallo zusammen,
mein aktuelles Projekt unterstützt zwei verschiedene Senortypen. Im
Headerfile wird dabei ausgewählt, ob Sensor 1 bis Sensor 20 ein Feuchte-
oder ein Temperatursensor ist.
Für den weiteren Ablauf benötige ich auch noch die Anzahl der
aktivierten Feuchte- und Temperatursensoren.
Gibt es eine Möglichkeit die Anzahl der jeweiligen Sensoren im
Präprozessor zu ermitteln, ohne diese explizit anzugeben? Im unten
gezeigten Beispiel soll irgendwie den beiden defines ANZAHL_SENSOREN die
Anzahl der jeweiligen Sensoren zugewiesen werden. Das soll automatisch
passieren, damit bei einer Neukonfiguration nur die Sensortypen
angepasst werden müssen und nicht auch noch die dann resultierende
Anzahl der Sensoren (ausschliessen einer möglichen Fehlerquelle).
Leider fällt mir keine Möglichkeit ein das mit den im Präprozessor zur
Verfügung stehenden Mittel zu realiseren.
Kennt ihr einen Trick mit dem das Vorhaben gehen könnte (ohne riesige
#ifdef && #ifdef && #ifdef-Konstrukte)?
1 | #define SENSOR_1_TYPE FEUCHTE
|
2 | #define SENSOR_2_TYPE FEUCHTE
|
3 | #define SENSOR_3_TYPE TEMP
|
4 | #define SENSOR_4_TYPE FEUCHTE
|
5 | #define SENSOR_5_TYPE TEMP
|
6 | .
|
7 | .
|
8 | #define SENSOR_20_TYPE TEMP
|
9 |
|
10 | // Diesen beiden defines soll automatisch der Wert 3 bzw. 2 zugewiesen
|
11 | // werden
|
12 | #define ANZAHL_FEUCHTE_SENSOREN 3
|
13 | #define ANZAHL_TEMP_SENSOREN 2
|
Ich nutze zwar den IAR Compiler und nicht den GCC, aber ich denke
entweder geht das in beiden Präprozessoren oder in keinem.
Vielen Dank fürs Anschauen.
Dumpfi