Forum: Mikrocontroller und Digitale Elektronik Tiny 13A und Werte aus Flash lesen (LPM)


von Mathias (Gast)


Lesenswert?

Hallo,

ich habe folgenden Code:
1
.include <tn13adef.inc>
2
MAIN:
3
LDI ZL,low(F_EINS*2)
4
LDI ZL,high(F_EINS*2)
5
LPM data,Z
6
RJMP MAIN
7
NULL: .DW 0b01010101
Das Problem ist
1. Das AtmelStudio überschreibt mir beim LDI ZL,high das Register R30 
statt 31 !!!!
2. - Ich lese egal bei welcher Adresse immer 0xFF ! (In der fertigen 
Schalung)

Hat jemand eine Idee, wo der Fehler liegt?

: Bearbeitet durch User
von spess53 (Gast)


Lesenswert?

Hi

>1. Das AtmelStudio überschreibt mir beim LDI ZL,high das Register R30
>statt 31 !!!!

Hast du doch auch so geschrieben:

LDI ZL,low(F_EINS*2)
LDI ZL,high(F_EINS*2)

MfG Spess

von Paul B. (paul_baumann)


Lesenswert?

Du tust in beide Register das Gleiche rein.

MfG Paul

von Mathias (Gast)


Lesenswert?

Hallo,

soweit ich das verstanden habe, zieht der Assembler aus der Adresse 
(NULL), welche 16bit groß ist den unteren Teil raus und setzt ihn in 
R30, danach muß doch das High-Byte noch geschrieben werden, deshalb die 
2. Anweisung !

Oder muß ich "nur" das Low-Byte setzen?

von LostInMusic (Gast)


Lesenswert?

Dein
1
LDI ZL,low(F_EINS*2)
2
LDI ZL,high(F_EINS*2)
musst Du korrigieren zu:
1
LDI ZL,low(F_EINS*2)
2
LDI ZH,high(F_EINS*2)

: Bearbeitet durch User
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.