Proč SWAPF ?
Kručinský Ladislav
ladislav.krucinsky@linde-mh.cz
Středa Září 2 14:20:39 CEST 2009
Dobrého dne ve spolek.
Učíc se pracovat s PICem, narazil jsem v datasheetu PIC16F676 na ilustrační ukázku programu pro uklizení registru W a registru STATUS při obsluze přerušení.
Nechápu proč se při uložení registru STATUS nepoužívá funkce MOVF ale SWAPF a to samé pak při obnově registru W. Jaký je přínos toho dvojího přehození slabik (jednou při uložení, podruhé při vyvolání zpět) ??? Určitě to nějaký důležitý důvod má, o to víc mně štve, že ho nejsem 100 odhalit.
Poučíte mne někdo ? Ukázku (není dlouhá) přikládám:
MOVWF W_TEMP ;copy W to temp register,could be in either bank
SWAPF STATUS,W ;swap status to be saved into W
BCF STATUS,RP0 ;change to bank 0 regardless of current bank
MOVWF STATUS_TEMP ;save status to bank 0 register
:
:(ISR)
:
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
Děkuji.
Kručinský
------------- další část ---------------
HTML příloha byla odstraněna...
URL: http://list.hw.cz/pipermail/hw-list/attachments/20090902/ff05231f/attachment-0002.htm
Další informace o konferenci Hw-list