Probleme mit UART Registern.

OP #3102344
Lesenswert?

Hallo....

Ich versuche gerade die Uart0 Schnittstelle in meinem ATMega128A
zu "erwecken".
Also Baudrate einstellen usw....

Aber beim compilieren des Codes meckert AVR-Studio6.1:

Operand 1 out of Range 0x90

Aber das register UBRR0H IST auf adresse 0x90

Ich habe mich an die im DB beschriebenen Beispiele gehalten.

das gleiche passiert mit der adresse 0x95

Irgend ein tip...?

mache ich was Grundlegendes falsch...?!?


André
#3102359
Lesenswert?

andre menzel schrieb:

> Aber beim compilieren des Codes meckert AVR-Studio6.1:
>
> Operand 1 out of Range 0x90
>
> Aber das register UBRR0H IST auf adresse 0x90

Ich schätze mal, du machst einen einfachen OUT nach UBRR0H.
Und der geht nun mal nicht mit dieser Adresse.

> Ich habe mich an die im DB beschriebenen Beispiele gehalten.

Ja leider. Die werden von Atmel meist von einem Datenblatt zum nächsten 
weiterkopiert und dann passieren solche Dinge.


> Irgend ein tip...?

Du musst über LDS bzw STS gehen und nicht über IN bzw. OUT

> mache ich was Grundlegendes falsch...?!?

Dir ist noch nicht klar, dass die I/O Register nicht alle über IN/OUT 
ansprechbar sind. Schau dir im Datenblatt den Abschnitt "Register 
Summary" an. Da gibt es 2 Typen von Registern - die mit 2 Angaben in der 
Adress-Spalte und die mit nur 1 Angabe. Alle Register mit I/O Adressen 
kleiner als 0x3F sind mit IN/OUT ansprechbar. Alle anderen können nur 
über ihre SRAM Adresse erreicht werden.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren