Перейти к содержанию
    

Прерывания по перепаду

Всем вечер добрый!

Подскажите, пожалуйста, как работать с прерываниями не по уровню, а по перепаду. Ядро - Cortex-M4F. Прочитал документацию, не обнаружил настроечного регистра, который бы настроил линию прерывания для работы по перепаду...

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

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

Необходимо сделать так, чтобы переход в обработчик прерывания происходил только по фронту сигнала прерывания.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Всем вечер добрый!

Подскажите, пожалуйста, как работать с прерываниями не по уровню, а по перепаду. Ядро - Cortex-M4F. Прочитал документацию, не обнаружил настроечного регистра, который бы настроил линию прерывания для работы по перепаду...

А MCU какой? Если STM32, то в Reference Manual написано.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А MCU какой? Если STM32, то в Reference Manual написано.

В том-то и дело, что MCU проектирую сам. За обработку прерываний обвечает ядро. Ядро в исходниках.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

В том-то и дело, что MCU проектирую сам. За обработку прерываний обвечает ядро. Ядро в исходниках.

Вот у STM32 есть NVIC (в ядре) и EXTI (в периферийных устройствах). Второй контроллер отвечает за внешние прерывания, в нем есть настройки фронтов. Для ознакомления можно скачать руководство на конкретный микроконтроллер.

Для других периферийных устройств устанавливается флаг прерывания, который стирается при входе в прерывание. Обычно программно.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Вот у STM32 есть NVIC (в ядре) и EXTI (в периферийных устройствах). Второй контроллер отвечает за внешние прерывания, в нем есть настройки фронтов. Для ознакомления можно скачать руководство на конкретный микроконтроллер.

Для других периферийных устройств устанавливается флаг прерывания, который стирается при входе в прерывание. Обычно программно.

спасибо.

в моём случае периферийное устройство - тоже стронний IP-блок, у которого, к сожалению, настройки вида прерываний нет :(

В ядре имеется тот самый NVIC, думал что посредством его настройки можно ему как-то объяснить, что определённую линию прерываний нужно обрабатывать как "прерывание по перепаду"...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

Изменено пользователем Tarbal

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...