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