Sida 1 av 1

Avbrottshantering PIC

Postat: 8 mars 2011, 16:54:43
av SeniorLemuren
I ett exempel kan man läsa att man ska spara register W och STATUS, det är jag med på, men varför använder man SWAP?

Kod: Markera allt

    MOVWF   TMP_W           ; Copy W to temp register
    SWAPF   STATUS,W        ; Swap Status and move to W 
    MOVWF   TMP_STATUS      ; Copy STATUS to a temp
    CLRF    STATUS          ; Force Bank 0
Varför flyttar man inte bara STATUS till TMP_STATUS direkt?

Och när man sedan lägger tillbaka registren så använder man även SWAP på W

Kod: Markera allt

    SWAPF   TMP_STATUS,W    ; Pull Status back into W
    MOVWF   STATUS          ; Store it in status 
    SWAPF   TMP_W,F         ; Prepare W to be restored
    SWAPF   TMP_W,W         ; Restore it

Re: Avbrottshantering PIC

Postat: 8 mars 2011, 17:35:41
av SeniorLemuren
Aha. kan det vara att SWAP operationer inte förändrar STATUS registret?

Re: Avbrottshantering PIC

Postat: 8 mars 2011, 17:48:24
av sodjan
YES ! :-)