mikrocontroller.net

Forum: Compiler & IDEs Vom Compiler berechnete Variablen ausgeben?


Autor: Werner A. (homebrew)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wie kann ich Variablen, die während der Compilierung vom Compiler
berechnet werden anzeigen.
Ich bin der Meinung, das ich früher mal eine Anweisung in den Code
geschrieben habe, die mir sowas bei der compilierung auf die
Kommandozeile ausgeben konnte.
irgenwie so...

#define F_CPU = 8000000ul
#define prescaler_timer0   64
#define t0_ints_per_second 1000

OCR0A = F_CPU  prescaler_timer0  t0_ints_per_second;

//echo $$OCR0A ??

Autor: Karsten Brandt (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
normale Strings kannst Du mit

#warning "TestString"

ausgeben. Wie Du aber an den Inhalt Compiler-definierter Variablen
kommst weiss ich auch nicht.

Autor: Günter R. (galileo14)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Bei der Zeile "OCR0A = F_CPU  prescaler_timer0  t0_ints_per_second;"
weist erst der Prozessor der Variablen OCR0A (bzw. diesem SFR) den vom
Compiler berechneten Wert zu, wenn das Programm ausgeführt wird. Man
könnte daran denken zu schreiben (wie Karsten Brandt richtig anmerkte)

#define XXX (F_CPU  prescaler_timer0  t0_ints_per_second)
#warning XXX

aber das funktioniert so nicht, da dabei einfach

warning: #warning xxx

angezeigt wird, d.h. der Wert ist zu diesem Zeitpunkt nicht berechnet.
Offensichtlich wird der Wert auch nicht vom Präprozessor berechnet (der
ja nur diverse Textersetzungen durchführt), sondern erst vom Compiler,
und das kommt wohl zu spät, da die Zeile "#warning XXX" ja eine
Präprozessor-Anweisung ist.

Vielleicht weiß jemand, wie man den Präprozesor dazu bringen kann, den
Wert zu berechnen, oder den Compiler, zu einem späteren Zeitpunkt den
berechneten Wert doch noch auszugeben?

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.