Jsou u PIC18 stále banky na RAM?
BSR registr to má, podle obrázků v datasheetu to m paměť rozdělenou taky.
Zatím co jsem pochroupal datasheet, tak jsem pochopil že instrukce MOVFF umí pracovat s úplnou 12b adresou na BSR nepotřebuje.
Neměla by taková věc jít snadno vyzkoušet? Když se o to zajímáš, tak píšeš v asm a tam si můžeš proměnnou umístit na libovolné místo. Tak ji dej dál a zkus k ní přístup.
Já jsem to zkoušel, normálně mi klasické instrukce movwf zapíše v pohodě do nastavovacích registrů který mají adresu někde od 0xFFF vejš, a do reg. umístěném na adrese 0x100 ne…
Když před napíšu BANKSEL TRISA, tak se mi do BSR zapíše 0x0F
U reg POKUS na adrese 0x100, mi banksel zapíše do BSR 0x01
Nicméně i bez banksel se mi do trisu zapíše pomocí MOVWF TRISA co chci.
POKUS nez určení banky nezapíšu.
Tak mi to nedalo. Jedná se sice o PIC18F4620, ale bude to podobné. BANK 15 je přístupná celá z BANK 0, ale z BANK 1 - 14 je sice taky přístupná, ale ne všechny registry. PORTy a TRISy jsou přístupné z každé banky, ale nastavovací registry, např. nastavení I2C, nebo zápis do TMRxL/H pouze z BANK 0 nebo 15.
To jen aby Billy Bob Bean nemusel študovat datasheet :D:D
Dobrý den, je to sice již starší vlákno, ale snad se ještě někdo najde …
S výše uvedeným zřejmě souvisí pojem Access Bank a Access RAM. Můžete mi prosím někdo vysvětlit, o co jde? Tuším, že právě díky existenci Access Bank není zapotřebí používat BSR a banky přepínat “ručně”. Nějak mi ale uniká, jak to funguje.
Díky za ochotu.
Vl.
Teď dělám s PIC18F46K22 a ten má taky 15 bank, z toho 0 a 15 jsou si přístupné navzájem,ale jen BANK 0 do adresy 0x5F a 15 od 0x60.
Co je v bance 0 od adresy 0x60 už bez banksel nepřepíšeš do banky 15 kromě movff reg1,reg2.
Používej registry FSRx jednoduše instrukcí lfsr x,register a nebo pseudoinstrukci banksel register
Honzo, díky, ale já jsem se ptal na něco jiného - nerozumím vlastnímu principu Access Bank, jak to prostě funguje nebo proč a k čemu tam vlastně je. Vl.