Hallo, wenn ich das anhängende kurze Programm im AVR-Studio (Ver 4.13 Service Pack 2, Build 571 unter Win2000 SP 2) übersetzen will, kommt folgende Fehlermeldung: error: Operand 1 out of range: 0xc5 Operand 1 ist UBRRH error: Operand 1 out of range: 0xc4 Operand 1 ist UBRRL Wenn ich die include-Datei von "m169def.inc“ in m16def.inc“ abändere erfolgt keine Fehlermeldung. Lt. Datenblatt des Atmega169 sollten die Register UBRRH und UBRRL verwendbar sein. Lasse ich die UART-Initialisierung weg und erzeuge z.B. ein Blinkende-LED-Programm funktioniert die Compilierung als auch das Brennen in ein Atmega169-Board mit PonyProg ohne Probleme. Die Deinstallation und erneute Installation von AVR-Studio war erfolglos. Ich bin etwas verwirrt. Gruß Visitor
1 | ;Baudrate einstellen |
2 | LDI R16, HIGH(UBRRVAL) |
3 | STS UBRRH, R16 |
4 | LDI R16, LOW(UBRRVAL) |
5 | STS UBRRL, R16 |
@MachMal, super, alles bestens. Vielen Dank!! In der m169def.inc-Datei sind die fraglichen Register als "Definitions marked "MEMORY MAPPED"are extended I/O ports and cannot be used with IN/OUT instructions" beschrieben. Ist das eine Besonderheit des ATmega169? Bisher habe ich nur mit ATmega8/8535/16 "gebastelt". Visitor
>Ist das eine Besonderheit des ATmega169?
Nicht nur bei diesem Controller...
Irgendwann war der "Register-Bereich" komplett ausgenutzt, so dass Atmel
auch noch Konfigurationsregister ins Memory legen musste.
Hi
>auch noch Konfigurationsregister ins Memory legen musste.
Die liegen schon immer im RAM-Bereich, genau wie die Register(
Ram[0]=r0);
Nur die Befehle 'in/out' haben einen eingeschränkten Adressbereich.
MfG Spess
Interessanterweise verwendet das Beispiel zur Initialisierung des UART im Datenblatt ATmega69 S.157 den OUT-Befehl.
Visitor wrote: > Interessanterweise verwendet das Beispiel zur Initialisierung des UART > im Datenblatt ATmega69 S.157 den OUT-Befehl. Dann solltest Du Dir vielleicht mal ein aktuelles Datenblatt zulegen. Da steht's nämlich korrekt drin...
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.