Tipps zum Softwareumzug vom UNO auf ATmega328P gesucht

Sorry, mein Fehler. Dass muss so heißen:

#define DEBUG

#ifdef DEBUG
        #define debugPrint(text) Serial.print(text)
	#define debugPrintln(text) Serial.println(text)
#else
	#define debugPrint(text)
        #define debugPrintln(text)
#endif

void setup() 
{
#ifdef DEBUG
  Serial.begin(9600);
#endif
}

void loop() 
{
  debugPrintln("test");
  delay(1000);
}

#ifdef Duh!

Ich habe das bei mir mit mehr Stufen drin. Also #define DEBUG 2 z.B. Dann muss es #if sein. Hatte ich beim kopieren und abändern übersehen :frowning:

Das geht dann aber immer noch nicht mit zwei Argumenten. War mir nicht ganz klar, da ich Modifizierer wie HEX dabei nicht verwende.

Dafür kann man es dann so machen:

#ifdef DEBUG
        #define debugPrint(text) Serial.print(text)
	#define debugPrintln(text) Serial.println(text)
        #define debugPrint2(text, arg) Serial.print(text, arg)
	#define debugPrintln2(text, arg) Serial.println(text, arg)
#else
	#define debugPrint(text)
        #define debugPrintln(text)
        #define debugPrint2(text, arg)
        #define debugPrintln2(text, arg)
#endif

Dann geht das auch. Gerade ausprobiert :slight_smile:

Vielleicht kennt noch jemand eine schönere Lösung. Funktionen überladen geht halt bei Makros nicht. Daher müssen die Unterschiedliche Namen haben