www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik LPM Befehl funktioniert nicht ! Hilfe


Autor: Kurt Späinghaus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Leute,

Kann mir mal einer zeigen wie ich mit dem LPM Befehl richtig umgehe ?
Habe da Probleme das die Software nicht richtig im Mikrocontroller 
läuft.

Ich benutzte nen AT90S2313

Ich will eine Zahl aus dem Programmcodespeicher laden und diese Bitweise 
auf einen Ausgang scheiben.

Um dieses zu erreichen müsste es doch so Funktionieren :

...
... ; Sonstiger Code
...
LDI ZH,high(tabelle<<1)
LDI ZL,low (tabelle<<1)
LPM r16,z+
...
...
...
tabelle: .db 10,20,30,40


Wäre dieses so richtig ?

Autor: Johanne Raschke (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,

wußte gar nicht, daß man lpm noch Operanden geben kann...
Ich hab einfach nur lpm gemacht, dann ist der Wert in R0. Hast Du Dich 
in dieser Zeile vertippt?
Kannst ja einfach schreiben:

LDI ZH,high(tabelle<<1)
LDI ZL,low (tabelle<<1)
LPM
mov R16, R0

Was soll "z+" machen? Sowas wie in C ("z++") geht in ASM nicht...

Johannes

Autor: crazy horse (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Z+ geht schon, allerdings nicht bei LPM. Wie schon gesagt, der 
LPM-Befehl schreibt immer das von Z adressierte Byte aus dem 
Programmspeicher nach r0. lpm hat keine weiteren Operanden.
Und das es den Befehl beim 1200er nicht gibt, stört mich mehr als alle 
anderen Einschränkungen.

Autor: mikki merten (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Beim LPM Befehl gibt es sehr wohl Operanden, allerdings nur bei den AVR 
MEGA. Bei den normalen AT90S, soweit diese über den LPM Befehl verfügen 
wird im das durch den Zeiger ZL|ZH spezifizierte Byte aus dem Flash nach 
R0 übertragen. Bei den MEGAs gibt es noch die Spielarten:
LPM  Reg,Z
LPM  Reg,Z+
wobei Reg = R0 - R31

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.