www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Pointer Verstaendniss in avr assembler


Autor: Mirko Roller (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich habe volgendes Problem mit den Z Pointer in avr assembler, in
Variante 1 Funktioniert es wie ich will, in Variante 2, nicht.
Wo liegt mein Verstaendniss Problem ? Vielleicht kennt sich damit
jemand aus ? Als Assembler benutze ich avra unter linux.

Vielen Dank fuer eure Hilfe.


Version 1: ( klappt )
  ldi ZL,LOW(TEST_DATEN*2)
  ldi ZH,HIGH(TEST_DATEN*2)
  adiw ZL,3    ;  Z+= 3
  lpm      ; R0 = (Z)
  ;out PORTD,R0    ; LEDs = 1100 = OKAY
TEST_DATEN:
.db $0,$1,$2,$3,$4,$5
--------------------------------------------------
Version 2: ( klappt nicht )
  ldi ZL,LOW(TEST_DATEN*2)
  ldi ZH,HIGH(TEST_DATEN*2)
  ld temp1,Z+  ;temp1=0
  ld temp1,Z+  ;temp1=1
  ld temp1,Z+  ;temp1=2
  ld temp1,Z  ;temp1=3
  out PORTD,temp1  ; LEDs = sollten 1100 sein, ist es aber nicht.

Autor: plitzi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nur mit dem lpm-Befehl kann man beim AVR aus dem Programmspeicher lesen.
Der ld-Befehl liest immer aus dem SRAM oder (wenn der Zeiger klein genug
ist) aus dem IO-Bereich.

Jörg

Autor: Alisa 1387 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich hab da auch nochmal ne dumme Frage: Wenn ich z.B. $60 über einen
Pointer ansprechen möchte muß ich dann "$60" in das low byte und
"$00" ins high byte schreiben? Nur mal so zur Info, nicht dass ich
irgendwo in die Walachei schreibe ;)

Autor: Daniel (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Alisa : Die Antwort lautet : "Ja"

MfG, Daniel

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.