A. K. schrieb:
> Hast du das mal ausprobiert? Es hat nämlich einen Haken: Es funktioniert
> nicht
Erwischt. Das kommt vom Zusammenschustern, und die Grundlage verglich
numerische Werte (da ging es um Doppelbelegung eines Timers).
> Rolands Variante funktioniert, wenn man sich die Mühe macht, die Ports
> vergleichbar zu 8051 umzubenennen, also 1,2,3 statt A,B,C.
Ich hab's mir bei den LPCs abgeschaut ;-)
In der Tat verwende ich für AVR/STM32/PIC32 GPIO eine ähnliche Variante,
nämlich zusätzlich zu A, B, C noch 0, 1, 2 in der Konfiguration zu
verwenden. Das erste findet Verwendung in Makros, die numerische
Variante für "parametrisiertes" GPIO.
LPC/RX/MSP430 verwenden numerische Port-IDs, dort ist Port-Name =
Port-ID.
A. K. schrieb:
> Aber ob man dann selber nach einiger Zeit noch durchblickt?
Das geht schon. Es nervt etwas, jeden GPIO-Pin mit drei Zeilen zu
beschreiben:
1 | #define DEFAULT_LED_RED_0_PORT_NAME B
|
2 | #define DEFAULT_LED_RED_0_PORT_ID 1
|
3 | #define DEFAULT_LED_RED_0_PIN 5
|
Ich weiß nicht, ob man von der Zahl 1 auf den String B mittels
Präprozessor schließen kann, dann könnte ich mir die erste Zeile sparen.
bzw.
1 | #define DEFAULT_LED_RED_0_PORT_NAME 2
|
2 | #define DEFAULT_LED_RED_0_PORT_ID 2
|
3 | #define DEFAULT_LED_RED_0_PIN 4
|
So passt das für alle Plattformen, den Rest erledigen Makros (zugegeben
teilweise mit wilden CONCATs) oder Funktionen. Die Komplexität liegt
aber weder in der Konfiguration noch im Aufruf.