www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik ATMega2560 und Ports H,J,K,L in AVR Studio


Autor: Lars Weber (particle)
Datum:

Bewertung
0 lesenswert
nicht 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:
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:
.include "m2560def.inc" 
.org 0x0000 

.def tmp = r16 

main:      ldi   tmp, 0xFF 
         out DDRL, tmp 
         ldi tmp, 0x00

mainloop:   inc tmp 
         out PORTL,tmp 
         rjmp mainloop 

Autor: Marius Wensing (mw1987)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich meine, dass du auf die oberen Ports mit STS bzw. LDS zugreifen 
musst.

Für in und out liegen die Register nicht im passenden Speicherbereich.

MfG
Marius

Autor: Lars Weber (particle)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: spess53 (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Lars Weber (particle)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Spess,

Klasse!
Wie immer sind die nützlichsten Infos immer hinten im Buch :-))

Grüße,
Lars

Autor: Marius Wensing (mw1987)
Datum:

Bewertung
0 lesenswert
nicht 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

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.