Forum: Mikrocontroller und Digitale Elektronik Flash ROM


von jochen (Gast)


Lesenswert?

Abend zusammen,

ich arbeite mich gerade in die Anwendung von Flash ROM ein,  haben aber 
noch Unklarheiten:


.include "m8def.inc"

.def temp = r16

         ldi temp, LOW(RAMEND)             ; LOW-Byte der obersten 
RAM-Adresse
         out SPL, temp
         ldi temp, HIGH(RAMEND)            ; HIGH-Byte der obersten 
RAM-Adresse
         out SPH, temp

 sbi DDRD,0
 sbi DDRD,1
 sbi DDRD,2
 sbi DDRD,3
 sbi DDRD,4
 sbi DDRD,5
 sbi DDRD,6
 sbi DDRD,7



loop:
ldi r17,0b00000011
ldi zl, LOW(muster*2)
ldi zh, HIGH(muster*2)
add zl, r17

lpm r17,z
out PORTD, r17

muster:
.db 0b00000000,0b00000000
.db 0b00000011,0b00000000

rjmp loop



sollte nicht eigentlich am Ende des Vorgangs r 17 =  0b00000011 sein 
also der dritte Wert beim muster?

von Hannes L. (hannes)


Lesenswert?

> sollte nicht eigentlich am Ende des Vorgangs r 17 =  0b00000011 sein
> also der dritte Wert beim muster?

Nöööö...

Der erste Eintrag ist
- Muster+0, dann kommt
- Muster+1,
- Muster+2 und
- Muster+3.
Wenn r17 also den Wert 3 hat, dann wird völlig korrekt auf das letzte 
Byte adressiert.

Übrigens: Warum gibst Du den Wert für r17 binär ein? Ein
 ldi r17,3
hätte völlig gereicht. Sieht zwar nicht so cool (kryptisch) aus, ist 
aber richtig(er), da der Wert einen Zahlenwert (Index) verkörpert und 
kein Bitmuster.

...

von jochen (Gast)


Lesenswert?

Ich habe mich dann vertan, ich wusste nicht, dass so gezählt wird.
Danke.

von Läubi .. (laeubi) Benutzerseite


Lesenswert?

das rjmp muss VOR!! das label muster:

von Hannes L. (hannes)


Lesenswert?

Läubi Mail@laeubi.de wrote:
> das rjmp muss VOR!! das label muster:

Stimmt auch wieder...

...

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.