Atmel GCC Frage zu #ifdef

Gast #3504630
Lesenswert?

hallo,
ich habe während der Entwicklung meines Programms einige LEDs zum 
debuggen genutzt. Nun bin ich fertig und müsste all diese Zeilen 
auskommentieren oder löschen.
ich dachte ich könnte mit
.
.
#ifdef DEBUG LED_PORT ^= 1<<LED3; #endif
.
.

es ein und auschaltbar machen.

leider wirft mir der Compiler das hier raus:
../tiny13.c:385: error: 'ifdef' undeclared (first use in this function)
../tiny13.c:385: error: (Each undeclared identifier is reported only 
once
../tiny13.c:385: error: for each function it appears in.)
../tiny13.c:385: error: expected ';' before 'DEBUG'
../tiny13.c:390: error: stray '#' in program
.
.
.immer so weiter bei allen stellen meldet er Fehler


Ich habe das schon desöftern im größeren Stil genutzt um beispielsweise 
eine ADC Prozedur auszuschalten.

Kann ich das nicht immer einfach auch mitten im Program machen?
Gibt es eine andere Möglichkeit die Zeilen bei Bedarf einfach wieder zu 
entkommentieren?
Gast #3504638
Lesenswert?

1
#ifdef DEBUG
2
    LED_PORT ^= 1<<LED3;
3
#endif // DEBUG

..oder sowas zentral..
1
#ifdef DEBUG
2
    #define DEBUG_LED_TOGGLE() LED_PORT ^= 1<<LED3
3
#else // DEBUG
4
    #define DEBUG_LED_TOGGLE() (void)0
5
#endif // DEBUG

HTH
Gast #3504639
Lesenswert?

Jürgen schrieb:
> #ifdef DEBUG LED_PORT ^= 1<<LED3; #endif
Zeilenumbrüche fehlen
1
#ifdef DEBUG
2
LED_PORT ^= 1<<LED3;
3
#endif
Alternativ:
1
inline void toggleDebugLED () {
2
#ifdef DEBUG
3
  LED_PORT ^= 1 << LED3;
4
#endif
5
}
6
int main () {
7
  // ...
8
  toggleDebugLED ();
9
  // ...
10
}

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