c macre text ersetzen

Gast #7001518
Lesenswert?

Hallo zusammen,

ich habe beispielsweise folgende 2 Defines:
1
#define DBGLED_PORT      GPIOC
2
#define DBGLED_GPIOCLK   RCC_AHB1Periph_GPIOC

Nun möchte ich mir das zweite Define ersparen und durch ein eigenes - 
allgemeingültiges - Makro ersetzen welches mir aus "DBGLED_PORT" ein 
"RCC_AHB1Periph_GPIOC" macht.

Z.B.
1
gpioport = DBGLED_PORT;          // GPIOC
2
gpioclk = CLOCK_OF(DBGLED_PORT); // RCC_AHB1Periph_GPIOC

Es gibt sicher eine einfache Lösung, vielleicht kann sie einer von Euch 
aus dem Stehgreif.

Danke,
Jens
Gast #7001524
Lesenswert?

> Es gibt sicher eine einfache Lösung

Das = weglassen ;-)
1
#define DBGLED_PORT         GPIOC
2
#define DBGLED_GPIOCLK_1(P) RCC_AHB1Periph_ ##P
3
#define DBGLED_GPIOCLK      DBGLED_GPIOCLK_1(DBGLED_PORT)

(Wobei Du eine glücklichere Benamung des Helper-Defines xxx_1 haben 
mögest)

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren