mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Erklärung zu Debug


Autor: Siegfried Saueressig (dieleena)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Roland Praml (pram)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das was du meinst hat in erster linie nichts mit Debug zu tun, sondern 
mit Compilerdirektiven. Kkeines Bsp:
#define IRGENDWAS

#ifdef IRGENDWAS
i = 1
#else
i = 2
#endif
i ist in dem Fall 1
#ifdef IRGENDWAS
i = 1
#else
i = 2
#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

Autor: Siegfried Saueressig (dieleena)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
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.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.