Headerdatei für USART / ATMEGA644 gesucht

OP #1648332
Lesenswert?
• ▲
▼
Hallo,

welche Headerdatei gehört zu einem ATmega644 - P20, wenn man den USART
benutzen möchte? Im Manual steht leider nur von den part specific header 
files.

Die Initialisierung funktioniert nicht, weil schon
UBRRH1 / UBRRL1
(wie es es im Manual steht, im Forum fand ich auch die Bezeichnung
UBRR1H / UBRR1L)
vom Compiler als undeklariert zurückgewiesen wird.

Ich habe also mit der Suchfunktion im Verzeichnis WINAVR20100110 nach
UBRRH1 bzw. UBRR1H gesucht und nichts gefunden.
UBRRH würde ich finden - in Dateien mit iom..., allerdings nicht in 
einer, die iom644 heißt.
Dann habe ich nach uart /usart.h gesucht - nichts (außer an abseitiger 
Stelle uart).

In WinAVR scheint diese Headerdatei (noch?) nicht enthalten sein. Muß 
man sich die Headerdatei aus irgendwelchen anderen Quellen besorgen oder 
alles selbst definieren?

mfg
Alexander
#1648343
Lesenswert?
• ▲
▼
Alexander Schmeil schrieb:
> welche Headerdatei gehört zu einem ATmega644 - P20, wenn man den USART
> benutzen möchte?
1
#include <avr/io.h>

Alexander Schmeil schrieb:
> Die Initialisierung funktioniert nicht, weil schon
> UBRRH1 / UBRRL1
> (wie es es im Manual steht, im Forum fand ich auch die Bezeichnung
> UBRR1H / UBRR1L)
> vom Compiler als undeklariert zurückgewiesen wird.

Benutze die Bezeichnungen, wie sie im Datenblatt stehen. Wenn es dann 
Fehler gibt, hast du wahrscheinlich beim Compilieren nicht den richtigen 
µC-Typ angegeben.
#1648355
Lesenswert?
• ▲
▼
Hc Zimmerer schrieb:
> Nach Definitionen für den zweiten UART wirst Du beim 644 lange suchen
> können.  Den hat nur der 644*P*.  Kleiner Buchstabe, große Wirkung.

Kleiner Nachtrag:  Dass nach dem Bindestrich ein P steht, macht aus dem 
644 keinen 644P.  Dieses P bezeichnet nur die Gehäuseform.
OP #1648415
Lesenswert?
• ▲
▼
Stefan Ernst schrieb:
> Benutze die Bezeichnungen, wie sie im Datenblatt stehen. Wenn es dann
> Fehler gibt, hast du wahrscheinlich beim Compilieren nicht den richtigen
> µC-Typ angegeben.


<avr/io.h> ist vorhanden,
UBRRH0 bzw UBRRL0 steht in der Initialisierungsfunktion,
und in makefile steht
# MCU name
MCU = atmega644.

auf dem µP ist aufgedruckt
ATMEGA644
20PU
0842
(egal, wo das P ist, ich brauche nur einen UART).

Leider funktioniert es nicht.
#1648425
Lesenswert?
• ▲
▼
Alexander Schmeil schrieb:
> UBRRH0 bzw UBRRL0 steht in der Initialisierungsfunktion

Die Register heißen UBRR0H und UBRR0L. Die Datenblätter sind leider oft 
nicht konsistent in Bezug auf die Bezeichnungen in den Beispielen oder 
dem Fließtext. Entscheidend sind die Bezeichnungen bei der Beschreibung 
der Register:
1
18.11.5  UBRRnL and UBRRnH – USART Baud Rate Registers
oder in der Registerliste am Ende des Datenblattes:
1
(0xC5)UBRR0H ...
2
(0xC4)UBRR0L ...
OP #1649886
Lesenswert?
• ▲
▼
Stefan Ernst schrieb:
> oder in der Registerliste am Ende des Datenblattes:(0xC5)UBRR0H ...
> (0xC4)UBRR0L ...

Ich habe es geändert - und die anderen Registerbezeichnungen auch und 
nun mault der Compiler nicht mehr.

Es mußte ein Programm, das auf dem ATMEGA16 lief, auf einen ATMEGA644 
übertragen werden. Leider haben sich dabei manche Register- u. 
BitBezeichnungen geändert.
Außerdem mußte ich feststellen, daß mein Manual nicht konsistent ist 
(Mischung von ATmega644 und ATmega644P; ist inzwischen behoben)

Ist denn wenigstens mein Versuch,
die Übertragung auf asynchr. 8N1 einzustellen, gelungen?
1
 UCSR0C |=  (1<<UCSZ01) |(1<<UCSZ00) ;  // Asynchr 8N1 ???

Gruß
Alexander
#1649945
Lesenswert?
• ▲
▼
Alexander Schmeil schrieb:
> Ist denn wenigstens mein Versuch,
> die Übertragung auf asynchr. 8N1 einzustellen, gelungen?
1
>  UCSR0C |=  (1<<UCSZ01) |(1<<UCSZ00) ;  // Asynchr 8N1 ???

Ja. Ist aber andererseits auch komplett überflüssig. "Async 8N1" ist der 
Default-Inhalt des Registers.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 16 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.