MGKea skrev:Välj register. Åter till register .....
Behöver hjälp med att förstå vad som sker.
Tack på förhand /Magnus
Kod: Markera allt
bsf STATUS,RP0 ; select Register Page 1
.....
bcf STATUS,RP0 ; back to Register Page 0
.....
bcf STATUS,RP0 ; address Register Page 2
bsf STATUS,RP1 ;
.....
bcf STATUS,RP0 ; address Register Page 0
bcf STATUS,RP1 ;
...osv
bsf samt bcf är kommandon, dessa hittar du sammanfattade i slutet av de flesta datablad. kolla "Instruction Set Summary"(PIC-modeller), där hittar du även information om övriga kommandon och hur de fungerar, vilka register de påverkar etc.
det finns ett register som heter status. Jag antar att du inte deklarerar värdet i STATUS själv utan använder ett includekommando för tex en .inc-fil. Samt skriver din kod i något program tex MPLAB. Inklude-kommandot ser då vanligen ut så här...
Då inkluderas inc filen och blir en "del" av din kod. Lägg gärna till denna inc fil i projektet (under other files) i MPLAB så kan du öppna den och kontrollera värden. I INC-filen tilldelas "ord" ett värde
tex. (för tex PIC16F877A)
eller
När du sedan använder ett kommando, tex bsf. Så ser du i databladet hur den fungerar. Tex "bsf f,b" där f är destinationen till registret du vill använda och b en bit i det registret. Att du skriver STATUS istället för H'0003' är för att det blir lättare att förstå vilket register man håller på med.
Samma sak sker oavsätt om du skriver (PIC16F877A)
eller
bsf vill ha destinationen till ett register samt en bit som parametrar.
(Hoppas jag fick det här rätt. Rätta mig om jag råkat fått med något fel...)