mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Assembler befehl LD Rd, Z


Autor: Peter Jänsch (hubipet)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich versuche im AVR Studio aus dem DSEG Bytes einzulesen.
Im Assemblercode:
.DSEG
.ORG  0X0060
symbols: .DB  0x0005, 0x0007, 0x0009, 0x000A

Sieht im Listingfile dann so aus:
.DSEG
.ORG  0X0060
000060 05
000061 07
000062 09
000063 0a        symbols: .DB  0x0005, 0x0007, 0x0009, 0x000A

jetzt versuche ich diese 4 byte zu lesen
ldi  r30, LOW(symbols)
ldi  r31, HIGH(symbols)

defnext:
  LD  r0, Z+
    .....
  brne  defnext

Statt der erwarteten bytes steht in R0 jedesmal 0xFF

Vielleicht habe ich eine Blockade oder aber den LD Befehl nicht richtig 
verstanden. Kann mir einer auf die Sprünge helfen?

Gruß
Peter

Autor: Mark Leyer (m2k10) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Du kannst mit dem Assembler im .dseg nur Adressen festlegen, aber keine 
Werte hineinschreiben, dafür muss auch das .cseg herhalten (LPM statt 
LD, Faktor 2 berücksichtigen). Willst du andere Werte im SRAM außer 0xFF 
haben, musst du sie nach Reset erst ins SRAM schreiben (bspw. vom Flash 
kopieren).

Autor: Spess53 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi

>.DSEG
>.ORG  0X0060
>symbols: .DB  0x0005, 0x0007, 0x0009, 0x000A

Das funktioniert nicht im Ram. Entweder du lädst die Werte beim 
Programmstart an die Stelle:

         .dseg

symbols: .byte 4

         .cseg

         ....

         ldi ZL,Low(symbols)
         ldi ZH,High(symbols)

         ldi r16,$05
         st Z+,r16
         ldi r16,$07
         st Z+,r16
         ldi r16,$09
         st Z+,r16
         ldi r16,$0A
         st Z+,r16


oder du machst das ganze im Flash:

         ....
         ldi ZL,Low(symbols<<1)
         ldi ZH,High(symbols<<1)
         lpm r16,Z
         ....


        .DB $05,$07,$09,$0A


MfG Spess

Autor: hubipet (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Mark,

Man hätte auch selber darauf kommen können. Bin ich aber nicht.
Darum: Danke für den Tip

Gruß
Peter

Autor: Spess53 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi

>        .DB $05,$07,$09,$0A

Muss natürlich

symbols:   .DB $05,$07,$09,$0A

MfG Spess

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.