Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Настройка полярности внешнего прерывания
Форум разработчиков электроники ELECTRONIX.ru > Сайт и форум > В помощь начинающему > ARM, 32bit
Dimk@
Добрый день!
Суть моей задачи - уловить синал с датчика движения (ИК), который при срабатывании размыкает нормально замкнутное реле(оно стоит внутри датчика). Я планирую сделать следующим образом: один контакт реле сажаю на землю, второй - на вход внешнего прерывания EXTINT1 МК. Получается, что когда никто не двигается, вывод вн. прерывания сидит на земле. А как только датчик срабатывает, то сразу размыкается реле и вывод переходит в состояние лог. 1 за счет внутреннего подтягивающего резистора.
Изначально я насторил внешнее прерывание на перепад, только не уточнил на какой. Оказалось, что на спад(falling-edge). У меня вывод внешнего прерывания выведен на разъем, поэтому там и замыкал, кусачками) Короче, по спаду все работало! В качестве проверки я зажигал светодиод при срабатывании прерывания. Но мне то надо наоборот.
Тут я меняю значение в регистре EXTPOLAR с 0 на 2, т.е. настроил прерывание на фронт (rising-edge). Теперь после сброса у меня сразу загорается светодиод несмотря на то, что выход внешнего прерывания я замкнул на землю перед сбросом.
Вопрос: в чем тут загвоздка? почему при работе по фронту прерывание срабатывает в любом случае?
_Pasha
По входу должна стоять RC-цепь для исключения дребезга контактов, который, вероятно, и наблюдается Вами 
Dimk@
Я тоже об этом уже думал. Сегодня, завтра вечером попробую. А имеет значение величина постоянной времени?
A. Fig Lee
Цитата(Dimk@ @ Feb 10 2009, 04:25) *
Я тоже об этом уже думал. Сегодня, завтра вечером попробую. А имеет значение величина постоянной времени?



типично считается дребезг контактов - 20 миллисекунд. то есть миллисекунд на 40 было бы хорошо.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.