www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik LD, LDD, ST und STD im AVR.


Autor: Andi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi!

Zu den Befehlen LD, LDD, ST und STD steht in der Hilfe von AVR-Studio
"Note that only the low byte of the Y pointer is updated in devices
with no more than 256 bytes data space. For such devices, the high byte
of the pointer is not used by this instruction and can be used for other
purposes."

Seh ich das richtig, das bei zugriffen auf den SRAM, wenn dieser nicht
größer als 256 Byte ist wie bei dem ATTiny26, das High-Byte in XH
(R27), YH (R29) und ZH (R31) weder berücksichtigt noch verändert wird
wie z. B. durch LD r16,y+?

Gruß
Andi

Autor: LameM (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
das YH wird nicht verändert steht da :-) und kann für andere zwecke
genutzt werden...

Autor: Andi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Und das gleiche gilt bei SRAM-Zugriffen dann wohl auch für XH und ZH?

Gruß
Andi

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das geht sogar soweit, daß auch der LPM r0,Z+ nicht ZH verändert, obwohl
er es müßte.

Da haben bei Atmel wohl einige Leute ganz schön getrieft.

Naja, inzwischen wurde der Fehler "behoben", indem dieser Befehl
einfach wieder aus dem Datenblatt genommen wurde :-(


Peter

Autor: Andi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das mit dem LPM ist mir bereits bekannt.
Allerdings gibs LPM r0,Z+ laut der Hilfe sowieso nicht zum Tiny26 bzw.
"das Resultat ist undefiniert".
Wenn natürlich wenigstens das low-Byte hochgezählt werden würde, könnte
man LPM r0,Z+ doch einsetzen wenn man sicher ist, das die Daten im Flash
sich nur in einer 256Byte-Seite befinden?

Gruß
Andi

Autor: ...HanneS... (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi...

Dann erhöhe ich Z aber lieber per ADIW und nutze LPM ohne Parameter
(wie bei den Classic-AVRs), kostet ein Wort Code mehr, funktioniert
aber bei allen Typen.

...HanneS...

Autor: Andi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das mit dem sicheren ADIW statt LPM rd,z+ ist schon klar aber wenn man
Code-Optimierung zwecks Platzmangel, weil man Anfangs wild drauf los
geprogt hat und nun der Platz ausgeht, sucht man halt nach
alternativen.

Gruß
Andi

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.