вложенные прерывания на пик16 - очень геморройно, лучше без этого, но
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)

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

Отправлено пьеро 05 мая 2004 г. 19:26
В ответ на: войдет, и будут у тебя проблемы... отправлено DSN 05 мая 2004 г. 19:14

если очень хочется, то ...

http://www.microchip.ru/phorum/read.php?f=2&i=49909&t=49874
попал на вектор. сохранил w и статус и фср гденить. проверил уже ли в
прерывании (если надо, типа чтобы обработку одного и того же прерывания
не запускать пока не отработал обработчик этого прерывания) и чего
обрабатываем. сохранил все что нужно в программном стеке. переместил w,
статус и фср в него же ... чего там еще ... подумать надо аккуратненько ...
выяснил источник прерывания, сбросил флаг, пошел его обрабатывать,
разрешил глобальные прерывания ...

много накладных расходов - время реакции на прерывание, стек под регистры, ...

можно попробовать иначе:
http://www.microchip.ru/phorum/read.php?f=2&i=49933&t=49874

по входу ветвиться btfss-goto и как бы два независимых
обработчика, каждый сохраняет и восстанавливает из своего
места ... а там же можно и еще поветвиться ... ;)


в любом случае, как уже было сказано, до разрешения новых
прерываний нужно сбросить бит, вызвавший прерывание инчае
прерывание тут же опять возникнет и опять попадем на вектор ...

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

Ответы



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

E-mail: info@telesys.ru