Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Нужно прерывание по уровню?
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > MSP430
Alechin
Три дня убил на поиск проблемы с потерей событий, фиксируемых по прерыванию.
В общем есть медленно и произвольно меняющийся аналоговый сигнал на входе внешнего комапартора. Выход компаратора заведен на 2274 на один из P2. Нужно фиксировать срабатывания этого компаратора. Но - реагировать на срабатывание нужно не всегда. Т.е. перывания периодически разрешаются и запрещаются. Вот тут-то бяка и сидит. Оказалось, что возникает (и довольно часто) ситуация, когда фронт сигнала с компаратора приходит ДО разрешения прерывания, в следствие чего он не фиксируется! Постоянно реагировать на прерывания не могу - режим жесткой экономии потребления - "лишние" просыпания нежелательны.
Для начала перед разрешением прерываний проверял выход компаратора "вручную" и если он уже сработал - прерывания не разрешал, событие фиксировал. Все-равно теряются события!. Выяснилось - комапартор часто срабатывал между моментом опроса его выхода и разрешения прерываний. Теперь еще и после разрешения прерываний проверять приходится. В общем как-то "некрасиво" выходит.
Помогло бы прерывание по уровню, но их нет sad.gif
Dog Pawlowa
Цитата(Alechin @ May 7 2009, 13:07) *
Помогло бы прерывание по уровню, но их нет sad.gif

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

По делу: 1)для того, чтобы не реагировать, не обязательно запрещать прерывания. Можно анализировать необходимость реагирования внутри прерывания.
MrYuran
Цитата(Dog Pawlowa @ May 7 2009, 15:58) *
для того, чтобы не реагировать, не обязательно запрещать прерывания. Можно анализировать необходимость реагирования внутри прерывания.

++
То же самое хотел сказать
Alechin
Можно, но я ж сказал - это вызовет не нужные просыпания процессора (довольно частые) с значительным увеличением тока потребления (у меня потребление лимитировано в 10 мкА за секунду).
MrYuran
Поставить внешний ключ.
После разрешения прерывания включаем ключ, и если на входе был постоянный уровень, то формируется фронт и прерывание.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.