7 szegmenses kijelzo meghajtása ATM128-cal
Papp Zoltán
oneway at onewayelectronics.hu
Thu Jul 7 20:45:39 CEST 2005
Thu, 07 Jul 2005 19:44:51 +0200-n, VFX <info at vfx.hu> írta:
>> .cseg
>> akarmi:
>>
>> .db 0bxxxx,0bxxxx,0bxxxx,0bxxxx
>> .db 0bxxxx, stb...
>>
>> Kédés: akkor a következõ sor úgy módosul hogy: ldi ZL,low
>> (akarmi*4)stb.. ? Azaz a label
>> melletti szozótényezõ azt jelenti hogy hány csoportra osztom fel a 16
>> bitet ?
>
> Nem.
> Az "akarmi" cimet a fordito wordben adja meg, mert az AVR code memoriaja
> 16 bites. Eppen ezert, ha byte-ban szeretned kezdocimet megkapni
> szorozni kell a wordben megadott cimet 2-vel:
mivel programban csak bájtot tudsz olvasni a prog.mem-ből.
> ldi ZL,low(akarmi*2). Ez lesz a baziscimed byte-ban. Ettol valo
> elterest (byte-ban) sima osszeadassal adhatod meg: ldi
> ZL,low(akarmi*2+4). Ebbol a szempontbol, hogy hany sorod, oszlopod van
> kozombos. Csak az szamit hany byte-tal van hatrebb.
Tehát ha 8 bittől eltérő adatokat akarsz letárolni, azt neked kell a 8
bites cuccokba "átkódolni"
pl. 4 bitre:
lpm ; R0 <- (Z)
andi R0,0x0F; alsó 4 bit marad meg
vagy:
lpm ; R0 <- (Z)
andi R0,0xF0; felső 4 bit marad meg
swap R0; alsó-felső 4 bit cseréje
Üdv
--
Papp Zoltán
OneWay Electronics
More information about the Elektro
mailing list