реклама на сайте
подробности

 
 
 
Reply to this topicStart new topic
> Нужно прерывание по уровню?
Alechin
сообщение May 7 2009, 10:07
Сообщение #1


Частый гость
**

Группа: Свой
Сообщений: 158
Регистрация: 27-06-05
Из: Химки, Моск.обл.
Пользователь №: 6 334



Три дня убил на поиск проблемы с потерей событий, фиксируемых по прерыванию.
В общем есть медленно и произвольно меняющийся аналоговый сигнал на входе внешнего комапартора. Выход компаратора заведен на 2274 на один из P2. Нужно фиксировать срабатывания этого компаратора. Но - реагировать на срабатывание нужно не всегда. Т.е. перывания периодически разрешаются и запрещаются. Вот тут-то бяка и сидит. Оказалось, что возникает (и довольно часто) ситуация, когда фронт сигнала с компаратора приходит ДО разрешения прерывания, в следствие чего он не фиксируется! Постоянно реагировать на прерывания не могу - режим жесткой экономии потребления - "лишние" просыпания нежелательны.
Для начала перед разрешением прерываний проверял выход компаратора "вручную" и если он уже сработал - прерывания не разрешал, событие фиксировал. Все-равно теряются события!. Выяснилось - комапартор часто срабатывал между моментом опроса его выхода и разрешения прерываний. Теперь еще и после разрешения прерываний проверять приходится. В общем как-то "некрасиво" выходит.
Помогло бы прерывание по уровню, но их нет sad.gif
Go to the top of the page
 
+Quote Post
Dog Pawlowa
сообщение May 7 2009, 11:58
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 2 702
Регистрация: 14-07-06
Пользователь №: 18 823



Цитата(Alechin @ May 7 2009, 13:07) *
Помогло бы прерывание по уровню, но их нет sad.gif

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

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


--------------------
Уходя, оставьте свет...
Go to the top of the page
 
+Quote Post
MrYuran
сообщение May 7 2009, 12:05
Сообщение #3


Беспросветный оптимист
******

Группа: Свой
Сообщений: 4 640
Регистрация: 26-12-07
Из: Н.Новгород
Пользователь №: 33 646



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

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


--------------------
Программирование делится на системное и бессистемное. ©Моё :)
— а для кого-то БГ — это Bill Gilbert =)
Go to the top of the page
 
+Quote Post
Alechin
сообщение May 8 2009, 04:15
Сообщение #4


Частый гость
**

Группа: Свой
Сообщений: 158
Регистрация: 27-06-05
Из: Химки, Моск.обл.
Пользователь №: 6 334



Можно, но я ж сказал - это вызовет не нужные просыпания процессора (довольно частые) с значительным увеличением тока потребления (у меня потребление лимитировано в 10 мкА за секунду).
Go to the top of the page
 
+Quote Post
MrYuran
сообщение May 8 2009, 05:04
Сообщение #5


Беспросветный оптимист
******

Группа: Свой
Сообщений: 4 640
Регистрация: 26-12-07
Из: Н.Новгород
Пользователь №: 33 646



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


--------------------
Программирование делится на системное и бессистемное. ©Моё :)
— а для кого-то БГ — это Bill Gilbert =)
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 16th June 2025 - 20:28
Рейтинг@Mail.ru


Страница сгенерированна за 0.01403 секунд с 7
ELECTRONIX ©2004-2016