PCLATH a jeho pouziti

Dobry den. Mohl byste mi prosim zjednodusene objasnit, na co slouzi tento prikaz u Microchipu. Programuji PIC 16F627 a rad bych pouzival jine banky a nevim, jak a kde ho pouzit. Diky moc :smiley:

Zprvu bych rád řekl, že je rozdíl mezi bankami a stránkami. Banky přepínáte např. když chcete používat jiné registry (třeba při nastavení portu se přepnete do banky 1, aby šlo zapisovat do TRIS registrů). To o čem mluvíte jsou stránky (paměť programu je rozdělena na bloky, kterým se říká stránky).

Začnu od začátku. Při volání (call) a skocích (goto) je použito pouze 11 bitů adresy => je tedy umožněn přesun pouze v rámci jedné stránky o velikosti slova 2048 “2k” (vypočteme dvě na jedenáctou). Pokud chceme tedy skočit na jinou stránku (pokud si dobře pamatuji, tak PIC 16F627 má jen dvě stránky), tak musíme zapsat do čtvrtého a třetího bitu PCLATH správnou hodnotu (0 ÷ 3, resp. 00 ÷ 11). Pokud se jedná o PIC 16F627, tak při skoku do druhé stránky (stránka 1), stačí před skokem či voláním nastavit PCLATH takto:

         bsf         PCLATH,3

Před návratem (return) již není nutné PCLATH nastavovat.
Program může tedy vypadat takto:

[code] bsf PCLATH,3
call Zkouska

; další zápis programu

     org         d'2048

Zkouska

; podprogram “Zkouska”

     return[/code]

Doufám, že jsem zdárně vyřešil problém adresace programové paměti :wink:.