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

Нужно прерывание по уровню?

Три дня убил на поиск проблемы с потерей событий, фиксируемых по прерыванию.

В общем есть медленно и произвольно меняющийся аналоговый сигнал на входе внешнего комапартора. Выход компаратора заведен на 2274 на один из P2. Нужно фиксировать срабатывания этого компаратора. Но - реагировать на срабатывание нужно не всегда. Т.е. перывания периодически разрешаются и запрещаются. Вот тут-то бяка и сидит. Оказалось, что возникает (и довольно часто) ситуация, когда фронт сигнала с компаратора приходит ДО разрешения прерывания, в следствие чего он не фиксируется! Постоянно реагировать на прерывания не могу - режим жесткой экономии потребления - "лишние" просыпания нежелательны.

Для начала перед разрешением прерываний проверял выход компаратора "вручную" и если он уже сработал - прерывания не разрешал, событие фиксировал. Все-равно теряются события!. Выяснилось - комапартор часто срабатывал между моментом опроса его выхода и разрешения прерываний. Теперь еще и после разрешения прерываний проверять приходится. В общем как-то "некрасиво" выходит.

Помогло бы прерывание по уровню, но их нет :(

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


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

Помогло бы прерывание по уровню, но их нет :(

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

В таком продвинутом контроллере - зачем они? :laughing:

 

По делу: 1)для того, чтобы не реагировать, не обязательно запрещать прерывания. Можно анализировать необходимость реагирования внутри прерывания.

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


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

для того, чтобы не реагировать, не обязательно запрещать прерывания. Можно анализировать необходимость реагирования внутри прерывания.

++

То же самое хотел сказать

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


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

Можно, но я ж сказал - это вызовет не нужные просыпания процессора (довольно частые) с значительным увеличением тока потребления (у меня потребление лимитировано в 10 мкА за секунду).

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


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

Поставить внешний ключ.

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

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


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

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

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

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

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

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

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

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

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

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