|
если очень хочется, то ...
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