[elektro] 16F688 PCLATH probléma

Gál Zsolt tralitoverin at freemail.hu
Wed Jan 12 08:47:17 CET 2011


140. oldal

MOVWF W_TEMP ;Copy W to TEMP register
SWAPF STATUS, W ;Swap status to be saved into W
CLRF STATUS ;bank 0, regardless of current bank, Clears IRP,RP1,RP0
MOVWF STATUS_TEMP ;Save status to bank zero STATUS_TEMP register
MOVF PCLATH, W ;Only required if using page 1
MOVWF PCLATH_TEMP ;Save PCLATH into W
CLRF PCLATH ;Page zero, regardless of current page
:
:(ISR) ;(Insert user code here)
:
MOVF PCLATH_TEMP, W ;Restore PCLATH
MOVWF PCLATH ;Move W into PCLATH
SWAPF STATUS_TEMP, W ;Swap STATUS_TEMP register into W
;(sets bank to original state)
MOVWF STATUS ;Move W into STATUS register
SWAPF W_TEMP, F ;Swap W_TEMP
SWAPF W_TEMP, W ;Swap W_TEMP into W

2011/1/12 Gál Zsolt <tralitoverin at freemail.hu>:
> Szerintem ilyen nincs az adatlapban. De mindjárt megnézem. Amikor már
> több lapot használsz, akkor a megszakítási rutinban menteni kell a
> PCLATH értékét, és utána beállítani a szükséges rutin eléréséhez.
> Tehát ha megszakításon belül módosítod a PCLATH értéket, akkor a
> módosítás előtt ( célszerű a belépéskor ) menteni kell.
>
> 2011/1/11 Horváth Tibor <h68tibor at freemail.hu>:
>>
>> Sziasztok, egy ideje programozgatom a tárgybeli PIC-et, de most valamit nagyon nem értek.
>>
>> Az addig világos, hogy a 000H - 7FFH tartományban nem kell módosítani a PCLATH-en, szabadon ugrálhatok (kivéve computed goto).
>> Az is világos, hogy 800H felett már be kell állítani a PCLATH.3 bitet.
>>
>> Na, de:
>>
>> Miért írja az adatlap az interruptnál, hogy nem szükséges elmenteni a PCLATH-et? Ha 800H felett jön IT és van sima GOTO utasítás az ISR-ben is, akkor mi van?
>>
>> Köszi,
>>
>> Tibi
>>
>>
>>
>> -----------------------------------------
>>          elektro[-flame|-etc]
>>
>>
>



More information about the Elektro mailing list