ATMega2560 und Ports H,J,K,L in AVR Studio

OP #1340147
Lesenswert?

Hallo Zusammen,

ich beginne mich gerade in den ATMega2560 mit dem myAVR Board MK3 
einzuarbeiten. Sowie ich die Aufbau verstanden habe, sind die 8 LEDs mit 
dem PORT L verschaltet.

Als IDE nehme ich AVR Studio 4 .
Hier habe ich als "Device und Debug Plattform" AVR Simulator -> 
ATmega2560 gewählt.

Mein erster kleiner Test, war einen Binärzähler auf den LEDs an PORT L 
auszugeben.

Das Problem ist, dass ich beim kompilieren des beigefügten Codes diese 
Fehlermeldung bekomme:
1
error: Operand 1 out of range: 0x10a

Die Ports H-L sind in der IDE auch mit der Adresse na(0x10A) aufgeführt 
und ausgegraut. Nehme ich andere Ports (A-G) funktioniert das Programm 
wie es soll.

Muss man die Ports H-L erst aktivieren?

Code:
1
.include "m2560def.inc" 
2
.org 0x0000 
3

4
.def tmp = r16 
5

6
main:      ldi   tmp, 0xFF 
7
         out DDRL, tmp 
8
         ldi tmp, 0x00
9

10
mainloop:   inc tmp 
11
         out PORTL,tmp 
12
         rjmp mainloop
OP #1340196
Lesenswert?

Hallo Marius,

danke für den Tipp. Mit LDS und SDS hat das "Programm" sofort 
funktioniert.

Woran "sieht" man, dass die Ports H-L anders angesprochen werden müssen?
Ich habe hier nur das Datenblatt des ATmega 2560 und damit alleine wäre 
ich nicht darauf gekommen.

Viele Grüße und Danke,
Lars
Gast #1340203
Lesenswert?

Hi

>Woran "sieht" man, dass die Ports H-L anders angesprochen werden müssen?
>Ich habe hier nur das Datenblatt des ATmega 2560 und damit alleine wäre
>ich nicht darauf gekommen.

Im Datenblatt gibt es einen Punkt 'Register Summary'. Die Register mit 
den zwei Adressen lassen sich mit 'in/out' ansprechen. Der Rest nur mit 
'lds/sts'.

MfG Spess
#1340211
Lesenswert?

Den Hinweis findest du im Datenblatt im Abschnitt 33 (Register Summary). 
Dort gibt es auch eine Fußnote, wo das mit LDS und STS steht (Note 4).

>When using the I/O specific commands IN and OUT, the I/O addresses $00 -
>$3F must be used. When addressing I/O registers
>as data space using LD and ST instructions, $20 must be added to these
>addresses. The ATmega640/1280/1281/2560/2561 is a complex microcontroller
>with more peripheral units than can be supported within
>the 64 location reserved in Opcode for the IN and OUT instructions. For the 
>Extended I/O space from $60 - $1FF in SRAM,
>only the ST/STS/STD and LD/LDS/LDD instructions can be used.

MfG
Marius

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