MCU Parameter aus Makefile als ASCII im Quellcode?

OP #1064919
Lesenswert?

Wie schafft man es, den im Makefile durch den Paramter MCU angegeben 
Mikrocontroller (z.B. MCU = atmega128) im Quellcode als String zu 
verwenden, ohne eine lange Kette nach dem folgenden Schema zu erstellen.
1
#if defined (__AVR_ATmega128__)
2
char s[]= "atmega128"
3
#elif (__AVR_AT90CAN128__)
4
char s[]= "at90can128"
5
#endif

Ziel sollte es sein, egal welchen Mikrocontroller ich im Makefile 
angebe, ohne Anpassung im c-file einen entsprechenden String zu 
erhalten.

Am Ende möchte ich einen String wie den folgenden zusammensetzen:
"Compiliert am "__DATE__" um " __TIME__" mit Prozessor "__MCU__

Anders ausgedrückt, wie baut man _MCU_ ?
OP #1066454
Lesenswert?

Danke für den Hinweis. Hab mir daraus 2 #defines erstellt, die 
vielleicht auch andere interessieren.

im Makefile:
1
CDEFS += -DF_CPU=$(F_CPU) -DMCU=$(MCU)

im Programm:
1
#define STRINGIZE(s) #s
2
#define S(s) STRINGIZE(s)
3
#define __MCU__ S(MCU)
4
#define __FCPU__ S(F_CPU)
5

6

7
printf_P(PSTR("\r\nMikrocontroller "__MCU__" %u mal progr."), cnt);

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