Alechin 0 7 мая, 2009 Опубликовано 7 мая, 2009 · Жалоба Три дня убил на поиск проблемы с потерей событий, фиксируемых по прерыванию. В общем есть медленно и произвольно меняющийся аналоговый сигнал на входе внешнего комапартора. Выход компаратора заведен на 2274 на один из P2. Нужно фиксировать срабатывания этого компаратора. Но - реагировать на срабатывание нужно не всегда. Т.е. перывания периодически разрешаются и запрещаются. Вот тут-то бяка и сидит. Оказалось, что возникает (и довольно часто) ситуация, когда фронт сигнала с компаратора приходит ДО разрешения прерывания, в следствие чего он не фиксируется! Постоянно реагировать на прерывания не могу - режим жесткой экономии потребления - "лишние" просыпания нежелательны. Для начала перед разрешением прерываний проверял выход компаратора "вручную" и если он уже сработал - прерывания не разрешал, событие фиксировал. Все-равно теряются события!. Выяснилось - комапартор часто срабатывал между моментом опроса его выхода и разрешения прерываний. Теперь еще и после разрешения прерываний проверять приходится. В общем как-то "некрасиво" выходит. Помогло бы прерывание по уровню, но их нет :( Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
DogPawlowa 0 7 мая, 2009 Опубликовано 7 мая, 2009 · Жалоба Помогло бы прерывание по уровню, но их нет :( Прерывания по уровню - это от бедности, когда несколько источников прерывания висят на одном входе. В таком продвинутом контроллере - зачем они? :laughing: По делу: 1)для того, чтобы не реагировать, не обязательно запрещать прерывания. Можно анализировать необходимость реагирования внутри прерывания. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
MrYuran 17 7 мая, 2009 Опубликовано 7 мая, 2009 · Жалоба для того, чтобы не реагировать, не обязательно запрещать прерывания. Можно анализировать необходимость реагирования внутри прерывания. ++ То же самое хотел сказать Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Alechin 0 8 мая, 2009 Опубликовано 8 мая, 2009 · Жалоба Можно, но я ж сказал - это вызовет не нужные просыпания процессора (довольно частые) с значительным увеличением тока потребления (у меня потребление лимитировано в 10 мкА за секунду). Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
MrYuran 17 8 мая, 2009 Опубликовано 8 мая, 2009 · Жалоба Поставить внешний ключ. После разрешения прерывания включаем ключ, и если на входе был постоянный уровень, то формируется фронт и прерывание. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться