mikrocontroller.net

Forum: Compiler & IDEs USART Gehversuche und "syntax error before "volatile""


Autor: Ederer Christoph (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Leute,
ich versuche meine ATMega128 ein einzelnes Zeichen über seinen USART0
an meinen Computer schicken zu lassen an dem dann ich sehnsüchtigst mit
dem HyperTerminal auf Dessen Ankunft warte.

Leider bin ich noch nicht mal soweit gekommen. Weil mir mein Compiler
die netten Worte
485test.c:25: error: syntax error before "volatile"
485test.c:32: error: syntax error before "volatile"
485test.c:39: error: syntax error before "volatile"
ins Ohr flüsstert.
Die Fehlermeldungen beziehen sich auf
Zeile25:  UCSR0B |= ( 1 << TXEN0 );
Zeile32:  UCSR0C |= ( 3 << UCSZ00 );
Zeile39:  UBRR0L = 6;
dazwischen sind nur Kommentare.

Und so ganz nebenbei, hab ich denn den USART richtig eingestellt? Ich
orientier mich am AVR-GCC-Tutorial und models halt auf meinen 128'er
um.

Grüße Christoph

Autor: johnny.m (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
In C dürfen Anweisungen nur innerhalb von Funktionen stehen. Das gilt
auch für Deine USART-Initialisierung. Wenn Du die in main() mit
reinverfrachtest, dürfte es keine Probleme mehr geben.

Autor: Ederer Christoph (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
<<In C dürfen Anweisungen nur innerhalb von Funktionen stehen

Muss wirklich? Dachte gerade so Initalisierungen sollten außerhalb
sein. Na, werd ich halt in Zukunft so praktizieren. Jedenfalls hats
nichts gebracht. Genau die gleiche Fehlermeldung.

Autor: Ederer Christoph (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Sorry, mein Fehler. Hab den alten Code noch stehen lassen. Es funzt!!!
Der Compiler ist jetzt ohne Fehler durch.
Danke also

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Muss wirklich? Dachte gerade so Initalisierungen sollten außerhalb
> sein.

Du redest von Variablen-Initialisierungen. Die können immer
bei der Definition einer Variable verwendet werden.
In deinem Beispiel definierst du keine Variable.

> Na, werd ich halt in Zukunft so praktizieren
Ein C-Buch zu lesen wäre sinnvoller.

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.