Flash ROM

Gast #575105
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?
#575160
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.

...

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren