Erklärung zu Debug

OP #953641
Hallo,
MPLAP 7.60; C18 Comiler;
Habe eine bescheidene Frage zu Debug.

#pragma config DEBUG = ON

#define DEBUG


void delay_ms( unsigned char ms )
{
int n = 0;
#ifdef DEBUG
//  Timer 3;  1 ms; CLK:4, :8, 1000 = 625;
i = (((CLK/4) /8) /1000);        // Befehl 1
#else
i = (((CLK/4) /8) /10000);       // Befehl 2
#endif
}

Wenn ich am PC das Programm für den PIC erstelle, überprüfe ich es auch 
mit dem Debugger.
In diesem Modus werden immer die Zeilen nach " #else " abgearbeitet.
Was ist, wenn das Programm direkt im PIC läuft, werden dann die Zeilen 
nach " #indef DEBUG " abgearbeitet?
Hintergrund meiner Frage. Der Timer soll beim debuggen übersprungen aus 
Zeitgründen werden.

Gruß Siegfried
#953649
Das was du meinst hat in erster linie nichts mit Debug zu tun, sondern 
mit Compilerdirektiven. Kkeines Bsp:
1
#define IRGENDWAS
2

3
#ifdef IRGENDWAS
4
i = 1
5
#else
6
i = 2
7
#endif
i ist in dem Fall 1
1
#ifdef IRGENDWAS
2
i = 1
3
#else
4
i = 2
5
#endif
i ist in dem Fall 2 (da das #define IRGENDWAS fehlt)

Also über #define #ifdef ... kann man so verschiedene Programmcodes zur 
Compilezeit "einblenden"
Das Programm MUSS bei einer Änderung neu übersetzt werden.

(Manche Entwicklungsumgebungen setzen u.U. automatisch ein DEBUG-Flag 
wenn man den Debugger startet)

Gruß
Roland
OP #954665
Hallo,
Habe das Beispiel eingesetzt. Will aber nicht wie ich.
Ich arbeite mit MPLAP 7.60; C18 Comiler; ICD2 von Andreas.

Ist es richtig, wenn das Programm im DEBUG - RUN - Modus (angeschlossen 
an den ICD2) betrieben wird, das die " #define #ifdef ... " ignoriert 
werden werden ? Erst wenn ich den PIC ohne Debugger Infos gebrannt ist 
die Befehle hinter " #indef " bearbeitet.

Gruß Siegfried

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 18 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

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.