www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik adiw SRAM lesen


Autor: ebby (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo
ich möchte ein im SRAM abgelegtes Byte lesen. Dafür nutze ich den 
X-Zeiger als Lese-Zeiger und die Routine call read_SRAM (der X-Zeiger 
wird darin erhöht).
Nun ist mir beim Programmieren aufgefallen, dass das Lesen nur nach der 
Variante A funktioniert, NICHT aber nach Variante B.
Ich frage mich nur, warum das nicht geht.
Im SRAM habe ich 64 Byte ab $0060 reserviert.

Variante A:

  adiw XH:XL,28
  call read_SRAM
  mov temp1, SRAM_register
  call lcd_data

  call read_SRAM
  mov temp1, SRAM_register
  call lcd_data

  call read_SRAM
  mov temp1, SRAM_register
  call lcd_data

  call read_SRAM
  mov temp1, SRAM_register
  call lcd_data

  call read_SRAM      ;A wird gelesen
        mov temp1, SRAM_register
  call lcd_data

;-------------------------------------------

Variante B:

  adiw XH:XL,32
  call read_SRAM            ;A wird NICHT gelesen
  mov temp1, SRAM_register
  call lcd_data

Autor: Jochen Müller (taschenbuch)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ebby,

Etwas mehr Kontext bitte, besonders die read_SRAM Routine möchte ich 
sehen.
Auf welchem Wert steht XH:XL vor dem adiw?
Als was ist SRAM_REGISTER deklariert?

Jochen Müller

Autor: Johannes M. (johnny-m)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Und wie sieht read_SRAM aus? Ohne zu wissen, wie die Parameter übergeben 
werden, kann man da viel spekulieren.

Autor: Fred (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
.. mann kann JEDES Prog Optimieren bis es eine Hure ist.
wenn es geht, dann lass doch dien Finger davon!

meine Erfahrung

Fred

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

Bewertung
0 lesenswert
nicht lesenswert
okay SRAM-Routine angehängt

Programm:           buffer = reservierte Bytes im SRAM

ldi XL,low(buffer)         ; read-Pointer
ldi XH,high(buffer)

und dann

    weiter mit Variante A oder B

Autor: Fred (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
wer bewegt dann da den Pointer?
oder hab's übersehen?


Fred

Autor: ebby (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
habe den Fehler schon gefunden
hatte buffersize nochfalsch deklariert

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.