Помню, что делал, но не могу найти в архивах...
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)

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

Отправлено Сергей Борщ 13 мая 2004 г. 09:54
В ответ на: (Pic16F87x)Люди, пожалуйста, поделитесь опытом сохранения рабочих регистров(w, status, pclath) в прерываниях при вложенности прерываний. отправлено KSN 13 мая 2004 г. 06:20

Идея простая:
При влете в прерывание сохраняешь регистры как обычно (обзовем этот массив Context1), и ветвишься по флагам в нужный обработчик.
Если попал в обработчик низкоприоритетного прерывания - копируешь сохраненные регистрые (Context1) в другое место (Context2), запрещаешь это прерывание, разрешаешь глобальные. В конце этого обработчика запрещаешь прерывания и восстанавливаешь регистры из Context2, делаешь retfie.
Если попал в обработчик высокоприоритетного прерывания - выполняешь обработчик и восстанавливаешь регистры из Context1.

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

Ответы



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

E-mail: info@telesys.ru