www.mikrocontroller.net

Forum: Compiler & IDEs GCC kennt plötzlich UBRR nicht mehr?


Autor: Fred (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo!
Habe heute ein Projekt kompilieren wollen, das vor dem Wochenende noch 
super funktionierte. Heute bekomm ich plötzlich diese Fehlermeldung:

../os_Serial.c: In function 'com_init':
../os_Serial.c:41: error: 'UBRR' undeclared (first use in this function)
../os_Serial.c:41: error: (Each undeclared identifier is reported only 
once
../os_Serial.c:41: error: for each function it appears in.)

Es geht um das Baudraten Register meines ATMega16, das ich gerne setzen 
würde um über den USART Daten auszutauschen...

Hat Jemand eine Idee was da los ist?
Danke!

Autor: Falk Brunner (falk)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@ Fred (Gast)

>Es geht um das Baudraten Register meines ATMega16, das ich gerne setzen
>würde um über den USART Daten auszutauschen...

Das heisst ja auch UBRRL und UBRRH ;-)

http://www.mikrocontroller.net/articles/AVR-GCC-Tu...

MFG
Falk

Autor: mthomas (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Möglicherweise wurde "vor dem Wochenende" noch für einen anderen AVR 
kompiliert, also anderer mmcu-Parameter und damit indirekt auch eine 
andere io*.h-Datei der avr-libc. Nicht für alle AVR (auch nicht für 
ATmega16) kann in den Registerdefinitionen der avr-libc ein "16bit" UBRR 
definiert werden, da die Addressen von UBRRL und UBRRH nicht 
aufeinandernfolgen. Für diese ist die von Falk genannte Vorgehensweise 
erforderlich. Ein paar Schnippsel aus avr-libc io*.h-Dateien zur 
Veranschaulichung.
// aus iom16.h fuer ATmega16
[...]
#define UBRRL   _SFR_IO8(0x09)
[...]
#define UBRRH   _SFR_IO8(0x20)

// aus iom169.h fuer ATmega169
[...]
#define UBRR   _SFR_MEM16(0xC4)
#define UBRRL  _SFR_MEM8(0xC4)
#define UBRRH  _SFR_MEM8(0xC5)
[...]

Martin Thomas

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.