www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Einfacherer Zugriff auf Doppelbyte im RAM ???


Autor: AVRli (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo zusammen,

ich habe einen ersten Teil meines Programmes fertig, bevor ich weiter
mache möchte ich den Code etwas optimieren.
Was mich immer wieder etwas aufwendig erscheint ist der Zugriff auch
ein Doppelbyte im RAM.

Ich habe mal ein Beispiel angefügt wie ich es mache,


POS_BRH:  .Byte 1
POS_BRL:  .Byte 1

ldi XL,low(ramBR)
sts POS_BRL,XL
ldi XH,high(ramBR)
sts posBRH,XH


es geht, nur geht es auch leichter? Man kann ja auch 2 Byte
definieren.

Ich arbeite mit dem ATmega128.

MfG AVRli...

Autor: Läubi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
POS .Byte2
ldi ZL, low(POS)
ldi ZH, high(POS)
st Z+, low(ramBR)
st Z, high(ramBR)

Müßte mein ich noch gehen.
hat aber vermutlich auch nicht weniger Takte als das was du im Momment
verwendest

Autor: D. W. (dave) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Man kann keine Konstanten direkt in den RAM speichern.

Du könntest aber einfach nen Macro machen.

.dseg
POS: .Byte 2

.cseg

.equ ramBR = 123


.macro STSW
  ldi r16, low(@0)
  sts @1, r16
  ldi r16, high(@0)
  sts @1+1, r16
.endmacro


  STSW POS, ramBR

Hbs kurz im AVR-Studio kompilieren lassen, funktioniert wohl.

Autor: AVRli (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,

das mit dem Macro find ich ja stark!
Wieder was gelernt, Danke!

MfG AVRli...

Autor: Wolfgang (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

"STSW POS, ramBR"

Nur sollte der Macroaufruf mit vertauschten Parametern erfolgen:

STSW ramBR, POS

Gruß

Wolfgang
--
www.ibweinmann.de

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.