PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Speichern im SRam



LotharK
09.04.2007, 19:04
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

p_mork
09.04.2007, 19:32
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

LotharK
09.04.2007, 20:45
UPS!! Danke, da hab ich mich aber verhauen...

nestandart
13.04.2007, 20:12
... und ZH sollte man auf null setzen, nicht auf 0x60

LotharK
13.04.2007, 20:40
Entschuldige, aber nach all meinen Informationen beginnt der SDRam an Adresse 0x060 und nicht bei 0x000.

Du hast mich jetzt unsicher gemacht.

MfG LotharK

p_mork
14.04.2007, 09:57
... und ZH sollte man auf null setzen, nicht auf 0x60

...
LDI ZH,HIGH(0x60)
...


Das obere byte von 0x60 ist 0.


Entschuldige, aber nach all meinen Informationen beginnt der SDRam an Adresse 0x060 und nicht bei 0x000

Stimmt doch.

MfG Mark