mikrocontroller.net

Forum: Compiler & IDEs WinAVR - Kann Konstanten nicht mehr nutzen


Autor: Thomas (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo

ich kann mittels #define angelegte Konstanten nicht mehr nutzen, soll
heißen, auf Variablen kopieren.

beispiel:
<C>
#define tim1rem 8000;

void main(void)
{
uint16_t myuint;
myuint = (uint16_t) time1rem;
}
</C>

Der Compiler bringt mir den typischen "Fehler vor ;".

Vlt. hat jemand den entscheidenden Hinweis?!?

Danke

Autor: A.K. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
"8000;"

Ein ; zuviel.

Autor: Rolf Magnus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> ich kann mittels #define angelegte Konstanten nicht mehr nutzen,
> soll heißen, auf Variablen kopieren.

Das sind eigentlich keine Konstanten, sondern Makros.

> #define tim1rem 8000;

Die obige Zeile bedeutet, daß der Präprozessor jedes Vorkommen von
tim1rem durch 8000; ersetzt, bevor es zum eigentlichen Compiler geht.

Daraus:

> myuint = (uint16_t) time1rem;

wird also:

myuint = (uint16_t) 8000;;

> Der Compiler bringt mir den typischen "Fehler vor ;".

"den typischen"?

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.