Что можно писать в подпрограмме прерывания PMP20?

Проверено экспертом Опубликовано: 27.03.2025 2376 просмотров Помогло 95%

Только простые команды, которые гарантированно выполняются за один цикл: установка и сброс битов, передача данных, арифметика и сравнение. Всё, что требует непрерывного выполнения, в прерывании работать не будет.

Что запрещено:

  • команды выдачи импульсов;
  • команды выдержки времени, кроме точной синхронизации;
  • команды связи (обмен по Modbus и в свободном формате).

Устройство программы: основная часть заканчивается командой FEND, после неё идут метки прерываний и их подпрограммы, каждая завершается IRET, а всё вместе — командой END. Метка прерывания обязана стоять после FEND.

Управление разрешением: EI разрешает прерывания, DI запрещает, участок между DI и EI — зона, где прерывания не отрабатываются. Если запрет не нужен, достаточно EI; контроллер и так стартует с разрешёнными прерываниями.

Есть тонкая настройка в системном flash-регистре SFD3: бит 1 переводит подпрограмму внешнего прерывания в настоящий режим прерывания (вместо выполнения в задаче), а бит 2 повышает её приоритет до максимального. Режим используют, когда внешних сигналов реального времени много. Плата за это — в такой подпрограмме нельзя вызывать функциональные блоки на языке C.

Прикреплённая документация

Георгий Жуков Георгий Жуков Ведущий инженер

Этот ответ был полезен?

Не нашли ответ?

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

Вопрос из раздела Что можно писать в подпрограмме прерывания PMP20?