www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Tabelle auslesen in AVRStudio


Autor: Thomas Schattat (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Forumsteilnehmer,
habe bereits vor zwei Wochen mal mein Problem geschildert und auch gute
Hilfe bekommen, bin beim Programmieren eines ATTiny12 aber auf noch ein
Problem gestossen das ich gar nicht verstehe.
Ich will anhand eines Wertes einen anderen Wert aus einer Tabelle im
ROM auslesen.
Hier meine zwei Beispiele, eines funktioniert, das andere nicht:


;************************************
;so geht es...

.def  var = R21
.def  delay = R23

ldi Zh, $02   ;setzt Zeiger auf $200
mov Zl, var   ;pickt mir meinen Wert aus der Tabelle ab $200
lpm           ;kopiert Wert aus Tabelle in R0
mov delay, R0 ;kopiert diesen Wert in meine Variable delay

;***************************************
;hier bekomme ich als Ergebnis immer 0 in delay

.def  var = R21
.def  delay = R23

ldi Zh, $02     ;setzt Zeiger auf $200
mov Zl, var     ;pickt mir meinen Wert aus der Tabelle ab $200
lpm delay, Z    ;kopiert Wert aus Tabelle angeblich direkt in delay
(R23)
;Ergebnis hier: delay ist IMMER 0 !!!


; Meine Tabelle:
.org $100
.DB 0,0,0,0,0,0,0,0,0,0,0,0,132,131,131,130,130,129,129,128
.DB 127 ; und so weiter, insgeamt 256 werte

Der Befehl lpm delay, Z ist legal für den ATTiny12 und bringt keine
Fehlermeldung.
Der Simulator macht es (AVRStudio), das Register ist mit dem
ausgelesenen Wert gefüllt.
Mein delay im richtigen Leben ist aber immer 0, ist das ein Bug bei
ATMEL?
Warum muß ich über den Umweg R0 gehen?

Frohe Ostern noch und danke für Eure Hilfe.

Gruß

Thomas

Autor: mmerten (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
beim TINY12 ist halt nur der Befehl LPM implementiert mit R0 als
Zielregister, ist halt kein ATmega Core.

Autor: Thomas Schattat (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Muß ich da noch dankbar für sein daß es den Befehl überhaupt gibt?

Spaß beiseite, ich habe vorher definiert daß ich den Winzling benutze,
wieso gibt das Studio dann keinen Fehler aus? Wenn es den Befehl für
diesen Baustein nicht gibt sollte es solch einen Hinweis geben, kommt
ja auch bei anderen Gelegenheiten.

Trotzdem DANKE,

Gruß

Thomas

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.