Hallo LotharK,
mit LPM liest man den Flash aus, nicht den RAM. Mit "LD register, pointerregister" liest man den RAM indirekt aus. Also "LD temp2,Z+" anstatt "LPM temp2,Z+".
MfG Mark
Hallo Profis,
irgendwie habe ich einen Denkfehler.
Ich möchte mal zum Test Daten im SRam eines ATtiny2313 abspeichern.
Dieser Speicher beginnt an Adresse 0x060.
Wenn ich jetzt diesen Code im Studio teste und mir den Inhalt von temp2 anzeigen lasse, bekomme ich gänzlich andere Werte.
LDI ZH,HIGH(0x60)
LDI ZL,LOW(0x60)
LDI tmp,'H'
st z+,tmp
LDI tmp,'a'
st z+,tmp
LDI tmp,'l'
st z+,tmp
LDI tmp,'l'
st z+,tmp
LDI tmp,'o'
st z,tmp
LDI ZH,HIGH(0x60)
LDI ZL,LOW(0x60)
lpm temp2, Z+
lpm temp2, Z+
lpm temp2, Z+
lpm temp2, Z+
lpm temp2, Z
Kann mir bitte mal wer kurz meinen Denkfehler erläutern?
MfG LK
Hallo LotharK,
mit LPM liest man den Flash aus, nicht den RAM. Mit "LD register, pointerregister" liest man den RAM indirekt aus. Also "LD temp2,Z+" anstatt "LPM temp2,Z+".
MfG Mark
UPS!! Danke, da hab ich mich aber verhauen...
... und ZH sollte man auf null setzen, nicht auf 0x60
Entschuldige, aber nach all meinen Informationen beginnt der SDRam an Adresse 0x060 und nicht bei 0x000.
Du hast mich jetzt unsicher gemacht.
MfG LotharK
Zitat von nestandartDas obere byte von 0x60 ist 0.Zitat von LotharK
Stimmt doch.Zitat von LotharK
MfG Mark
Lesezeichen