MPASM a CBLOCK
Hfmcons
hfmcons@seznam.cz
Úterý Prosinec 4 22:42:12 CET 2007
Duplicitní názvy nejspíš nepůjdou přeložit.
S pozdravem,
Miloš Dašek
----- Original Message -----
From: Bitovod
To: HW-news
Sent: Monday, December 03, 2007 11:57 PM
Subject: Re: MPASM a CBLOCK
Diky obema, omlouvam se, nemohl jsem zareagovat rychleji.
Ono mi to pak pri studiu ruznych datasheetu a ruznych prikladu docvaklo,
ze
by to mohlo takhle byt. Takze, chapu-li to spravne, protoze v kazde bance
kousek mista zbyva pro registry, muzu si rozstrkat registry na konkretni
mista v konkretnich bankach? Zatim to pri blikani LEDkama tedy nevidim
jako
nutnost, ale asi by se to mohlo hodit.
A jeden poddotaz - je mozne mit stejne pojmenovany registr ve vice
bankach?
Ted to nemam na cem vyzkouset, ale je mozna takovato definice:
CBLOCK 0x20
Promenna1
endc
CBLOCK 0xA0
Promenna1
endc
S tim, ze bych pristupoval k stejne pojmenovanemu registru, ale podle
aktualni banky by mel pokazde jiny obsah?
Pavel Kutina
----- Original Message -----
From: "Jiri Bezstarosti" <jiri@bezstarosti.cz>
To: "HW-news" <hw-list@list.hw.cz>
Sent: Monday, December 03, 2007 10:36 AM
Subject: Re: MPASM a CBLOCK
No a k druhe casti dotazu. Kazdy PIC ma v PDF mapu pameti/registru (u
PIC je pamet RAM oznacovana jako registry, protoze se s ni jako s
registry pracuje) a tam zjistim, ktere registry (jaky rozsah adres) mohu
pouzivat pro sve promenne. Takze to 0x20 je treba zacatek pameti pro
vseobecne pouzitelne registry, tedy ty, ve kterych si muzete delat co
chcete a neovladaji zadnou periferii, tedy nemaji zadny specialni
vyznam. V dokumentaci (PDF) je najdete v mape pameti/registru pod nazvem
"General Purpose Register".
--
Jiri Bezstarosti
_______________________________________________
HW-list mailing list - sponsored by www.HW.cz
Hw-list@list.hw.cz
http://list.hw.cz/mailman/listinfo/hw-list
Dobrý den,
doufám, že se nepletu ale CBLOCk znamená, že se paměť začně adresovat
od 0x20 a všechny další registry budou přibývat od této hodnoty. Má
to význam v případě, kdy chcete mít registry nějak srovnané za sebou
(z nejakého důvodu, nebo prostě jen pro přehled) a nechcete u každého
vypisovat jeho přesné obsazení. Příklad:
klasicky:
Delay1 EQU 0x20h
Delay2 EQU 0x21h
Delay3 EQU 0x22h
a teď za pomoci makra:
CBLOCK 0x20h
Delay1
Delay2
Delay3
ENDC
Význam bude pořád ten samý. Pokud potom přidáte do makra další
registr (třeba mezi Delay1 a 2) tak se ty pod Delay1 prostě v
obsazení paměti "šoupnou"níže. U klasiky by jste musel přepisovat
všechny na jinou hodnotu.
S pozdravem,
Martin Šaněk
mailto:sanek.martin@volny.cz
------------- další část ---------------
HTML příloha byla odstraněna...
URL: http://list.hw.cz/pipermail/hw-list/attachments/20071204/55d082af/attachment-0002.htm
Další informace o konferenci Hw-list