www.mikrocontroller.net

Forum: Compiler & IDEs GCC meldet Fehler


Autor: Lars (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich benutze AVR Studio 4.13SP2 mit den aktuellen WinAVR GCC.
Ziel MCU ist ein Mega 8.

Beim initialisieren des USART bekomme ich bei der Zeile:

UCSRB = (1<<TXEN | 1<<RXEN);

immer diese Fehlermeldung:

../Schalter_Ansteck_Modul.c:35: error: lvalue required as left operand 
of assignment

In anderen Projekten (Mega16/32) funktioniert dies ohne Probleme.
Alle Beispiele im Internet und auch um Datenblatt aktivieren die
RXD und TXD Pins mit dieser Codezeile. Warum hier nicht? Ich stehe
da ein wenig auf den Schlauch. Was kann da die Ursache sein"


mfg Lars



PS: nochmal die ganze Funktion


void Init_UART(void) {
  // Baudrate auf 4800Bps setzen bei 1MHz Systemtakt
  UBRRH = 0;
  UBRRL = 12;

  // Set frame format: 8 data 2stop
  UCSRC |= (1<<URSEL)|(1<<USBS)|(1<<UCSZ1)|(1<<UCSZ0);

        // Aktivieren von receiver und transmitter
        UCSRB = (1<<TXEN | 1<<RXEN);
}

Autor: Michael U. (amiga)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

wie immer keine Ahnung von C (nur ASM), aber fehlen da nicht 2 Klammern?

statt UCSRB = (1<<TXEN | 1<<RXEN);
also  UCSRB = (1<<TXEN) | (1<<RXEN);

Falls falsch -> Korrekturen überlasse ich den C-Programmierern
Falls richtig -> Erlärung überlasse ich den C-Spezialisten.

Gruß aus Berlin
Michael

Autor: Oliver (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Mit den Klammern hat das nichts zu tun - mit dem gezeigtem Codeauschnitt 
aber auch nicht. Der compiliert fehlerfrei.

Oliver

Autor: Lars (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
So,

Fehler gefunden. Ich habe wohl ohne es zu merken in der iom8.h
in der Zeile mit der UCSRB Definition das "_SFR_IO8" gelöscht.
Wieder eingefügt und die Welt war wieder in Ordnung;)

mfg

Lars

Autor: Rolf Magnus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Warum pfuschst du in Systemheadern rum, wenn man fragen darf?

Autor: Lars (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Du darfst fragen.
Ich habe da mal was nachgesehen und rauskopiert. Ändern wollte ich darin
nichts! Dabei ist es dann passiert.
Also: besser aufpassen wenn man was nachsieht!!!

Autor: Falk Brunner (falk)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@ Lars (Gast)

>Ich habe da mal was nachgesehen und rauskopiert. Ändern wollte ich darin
>nichts! Dabei ist es dann passiert.
>Also: besser aufpassen wenn man was nachsieht!!!

Oder gleich das gesamte Verzeichnis schreibgeschütz machen.

MFG
Falk

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.