Direktiva BANKSEL

Hoj
Když napíšu direktivu BANKSEL (např BANKSEL 0), tak to ovlvňuje oba např:

BCF	STATUS,RP0
BCF	STATUS,RP1

a nebo jen ten, který je nutné - např jsem v bance 1:

BCF	STATUS,RP0

Ahoj, osobně si myslím, že to zapíše do obou dvou ať už se ten bit shoduje nebo ne, asi by bylo zbytečné nejdřív kontrolovat každý bit a v případě, že se neshoduje jej měnit.

Lepší je, ale používat název registru (např. BANKSEL TRISB) než přímo název banky (t.j. BANKSEL 1) nemusíš se potom vůbec starat o jakou banku se jedná.

Díky moc. říkal sem si, jestli když MPLAB ví, v jaké jsem bance, tak že by nemusel používat oba bity pro větší rychlost a menší program

Ahoj

V jaké bance se aktuálně program nachází nelze předpovědět a MPLAB tuto informaci ví snad jen v případě, kdy něco simuluješ přes MPLAB SIM.

MPLAB použije vždy, jak už ti Unknown Hero správně řekl, oba příkazy. Je proto v podstatě jedno, jestli je zapíšeš oba nebo použiješ banksel. Pokud píšeš program kde jde o časování, rychlost nebo úsporu kódu, tak je lepší používat pouze příkazy, kdy většinou stačí pouze jedna změna bitu RPx ve STATUS.

Já osobně hodnotím direktivu banksel ze všeho nejvíce právě proto, že jí mohu používat v makrech, které používám úplně stejné v různých programech. Makro tak funguje vždy, ať je v jakémkoliv programu, protože před každým použitím registrů mám v makru direktivu banksel a při tvorbě programu nemusím myslet na zpětné přepisování již napsaných maker (podprogramů), když jejich regisrty mám v různých bankách