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

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.