www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Rd Rr im indirekten Adressierungsmodus


Autor: Christoph Kukulies (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wo finde ich eine genaue Zuordnung, welche Rd bzw. Rr Register in den
jeweiligen Adressierungsmodi erlaubt sind?

Ich raufe mir seit einer Stunde an einer kleinen Programmpassage die
Haare und bin mir nicht sicher, ob ich die richtigen Register benutze.
Das AVR Handbuch von ATMEL schweigt sich da aus. Es sagt z.B. im
LD Rd,Y+ ist Rd Zielregister. (S. 4-7) Auf Seite 4-9 steht dann:

"Rd: R0-R31 or R16-R31, (depending on instruction)"

      ldi YL,low(2*data)
      ldi YH,high(2*data)
loop: ld r0,Y+
      tst r0
      breq l1
      ....
      rjmp loop
l1:   ret


Obiger Code funktioniert nicht.

     ldi ZL,low(2*data)
     ldi ZH,high(2*data)
loop: lpm
      tst r0
      breq l1
      ....
      adiw ZL,1
      rjmp loop
l1:   ret

Letztere Passage funktioniert.

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
LD und LPM heißen nicht nur anders, die machen auch was anderes.

Schau es Dir nochmal gründlich in der Befehlsbeschreibung an.


Peter

Autor: Christoph Kukulies (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
LD Rd,Y :  Rd<-(Y)

LPM      : R0<-(Z)

Ich sehe da keinen Unterschied, lediglich, daß im LPM Falle
fest R0 als Ziel genommen wird, im ersteren Fall ein beliebiges Rd.

Liegt der Unterschied vielleicht im Wort "Program memory". Kann
ich damit nicht vom SRAM laden?

Autor: Stefan (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ld
Load indirect rom data space

lpm
Load indirect from program memory

>Liegt der Unterschied vielleicht im Wort "Program memory". Kann
>ich damit nicht vom SRAM laden?
Könnte sein ;-)
Aus dem Flash (=program memory) bekommt Du Daten NUR mit lpm. Der AVR
ist eine Havard-Architektur, d.h. Daten- und Programmspeicher sind
komplett voneinander getrennt. Flash und RAM unterscheiden sich also
nicht nur durch ihre Adresse, sondern grundlegend durch die Art des
Zugriffs.

Stefan

Autor: Christoph Kukulies (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Stefan, Du schreibst:
> ld
> Load indirect rom data space
                ^^^
> lpm
> Load indirect from program memory

rom? ram?

Havard? Harvard?

Etwas genauer bitte. Im ersten Falle ist ein a oder o
sicher wichtig. Im zweiten ein fehlendes 'r' vielleicht nicht so.

Autor: knapp (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

hier ist was für dich.
Lesen.


gruss
michael

Autor: Stefan (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Oh sorry, gleich 2 Rechtschreibfehler.

Load indirect rom data space
sollte natürlich
Load indirect from data space
heissen.

Ist übrigens ein Zitat aus der Befehlsliste.

Macht richtig Spass, Dir Tips zu geben.

Stefan

Autor: Christoph Kukulies (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke an alle. Das AVR Instructionset Dokument ist gut. Das hatte ich
noch nicht.

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.