[an error occurred while processing this directive]
Ответ: все элементарно, обрати внимание на то, что инструкция swap не изменяет флаги в регистре статуса (+)
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)

миниатюрный аудио-видеорекордер mAVR

Отправлено Antimouse 08 июля 2003 г. 15:53
В ответ на: PIC прерывания отправлено aram_pessim 08 июля 2003 г. 15:41

; здесь вход в прерывание,
; сохраняем аккумулятор в переменную W_TEMP,
; сохраняем значение регистра статуса в переменную S_TEMP
movwf W_TEMP ;Move W into W_TEMP
swapf STATUS, W ;Swap STATUS to be saved into W
bcf STATUS, RP0 ;Change to bank 0
movwf S_TEMP ;Move STATUS into S_TEMP in bank 0
;
; здесь выполняем нужные нам действия
;

; выходим из прерывания, восстанавливая регистры
; статуса и аккумулятор
swapf S_TEMP, W ;Swap S_TEMP register into W
movwf STATUS ;Move W into STATUS register
swapf W_TEMP, F ;Swap W_TEMP
swapf W_TEMP, W ;Swap W_TEMP into W
retfie

Составить ответ  |||  Конференция  |||  Архив

Ответы



Перейти к списку ответов  |||  Конференция  |||  Архив  |||  Главная страница  |||  Содержание  |||  Без кадра

E-mail: info@telesys.ru