Forum: Mikrocontroller und Digitale Elektronik Operand out of range in AVR Studio


von anders (Gast)


Lesenswert?

Hello!

.include "m644def.inc"

..
..
  out    UCSR0B, temp
..
..

Build:
Operand out of range 0xc1

Please help!

von Johannes M. (johnny-m)


Lesenswert?

out (und in dementsprechend auch) funktioniert nur mit den unteren 
64 I/O-Registern. UCSR0B liegt außerhalb des Bereichs, weshalb man da 
sts (für in ist dann lds der entsprechende Befehl) nehmen muss. 
Schau Dir mal die Befehlssatzdokumentation dahingehend an.

von anders (Gast)


Lesenswert?

Danke, danke, danke!

anders

von anders (Gast)


Lesenswert?

Wieder Danke,
aber erlauben Sie eine Entschuldigung.

ATmega644 Datenblatt, Seite 170:

Assembly Code Example

..
..
out UCSR0C,r16
..

Jetzt habe ich

sts  UCSR0C,r16

The change from PIC assembly to AVR is full of surprises. Now I must 
create something instead of

   sbis     UCSR0A, RXC0  ; warten bis ein Byte angekommen ist

anders

von Jörg X. (Gast)


Lesenswert?

1
  lds tmp, UCSR0A
2
  sbrs tmp, RXC0

hth. Jörg

von anders (Gast)


Lesenswert?

Es lebt!
Die kommunikation klappt!!

Danke fuer Hilfe

Anders

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.