Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей... |
05.10.2011, 13:44
|
|
Почётный гражданин KAZUS.RU
Регистрация: 24.09.2007
Адрес: Полтава, UA
Сообщений: 2,450
Сказал спасибо: 376
Сказали Спасибо 1,060 раз(а) в 624 сообщении(ях)
|
Re: Как устранить дребезг на вход INT0
RS триггер, повесить кнопку через него.
__________________
Мелочи не решают главного. Они решают всё!
|
|
|
|
05.10.2011, 17:18
|
|
Гражданин KAZUS.RU
Регистрация: 18.07.2006
Сообщений: 874
Сказал спасибо: 234
Сказали Спасибо 29 раз(а) в 27 сообщении(ях)
|
Re: Как устранить дребезг на вход INT0
RS триггер уменьшит роль мк и усложнит схему
|
|
|
|
05.10.2011, 17:21
|
|
Прописка
Регистрация: 07.02.2010
Адрес: Калининград
Сообщений: 148
Сказал спасибо: 72
Сказали Спасибо 23 раз(а) в 20 сообщении(ях)
|
Re: Как устранить дребезг на вход INT0
Вопрос хороший, я думал решить его следующим образом:
При первом прерывании по INT0 в маске прерываний запрещать его, и засекать по TMR0 период времени, по прерыванию от TMR0 маску прерываний восстанавливать.
Получается проц не ждет работает как нужно по основной программе, а задержка определяется настройками TMR0.
__________________
Лужу, паяю, ЭВМ починяю.....
Последний раз редактировалось Maxim39; 05.10.2011 в 17:23.
Причина: опечатка
|
|
|
|
05.10.2011, 22:47
|
|
Вид на жительство
Регистрация: 03.06.2006
Адрес: Израиль
Сообщений: 388
Сказал спасибо: 2,063
Сказали Спасибо 337 раз(а) в 156 сообщении(ях)
|
Re: Как устранить дребезг на вход INT0
А если вот так;
if(key_pressed)
{
while (key_pressed);
...нужный код....
}
|
|
|
|
05.10.2011, 22:53
|
|
Гуру портала
Регистрация: 27.10.2008
Адрес: ЕС
Сообщений: 10,835
Сказал спасибо: 919
Сказали Спасибо 4,308 раз(а) в 2,573 сообщении(ях)
|
Re: Как устранить дребезг на вход INT0
Zoosman, где и что вы собрались зацикливать?
|
|
|
|
06.10.2011, 09:47
|
|
Гражданин KAZUS.RU
Регистрация: 18.07.2006
Сообщений: 874
Сказал спасибо: 234
Сказали Спасибо 29 раз(а) в 27 сообщении(ях)
|
Re: Как устранить дребезг на вход INT0
Я и так и сяк но всеравно лезет временами лишний.
|
|
|
|
06.10.2011, 09:55
|
|
Гражданин KAZUS.RU
Регистрация: 22.07.2007
Адрес: Владивосток
Сообщений: 984
Сказал спасибо: 435
Сказали Спасибо 375 раз(а) в 197 сообщении(ях)
|
Re: Как устранить дребезг на вход INT0
Сообщение от Easyrider83
|
Zoosman, где и что вы собрались зацикливать?
|
while (условие) ;
зацикливает точку с запятой, т.е. это пустой цикл.
но смысла в этом нет, в данном случае.
Мой голос - за метод Maxim39.
Последний раз редактировалось ampy; 06.10.2011 в 09:57.
|
|
|
|
06.10.2011, 10:05
|
|
Почётный гражданин KAZUS.RU
Регистрация: 13.10.2007
Адрес: Беларусь
Сообщений: 8,048
Сказал спасибо: 60
Сказали Спасибо 3,954 раз(а) в 2,309 сообщении(ях)
|
Re: Как устранить дребезг на вход INT0
Сообщение от Maxim39
|
При первом прерывании по INT0 в маске прерываний запрещать его, и засекать по TMR0 период времени, по прерыванию от TMR0 маску прерываний восстанавливать.
Получается проц не ждет работает как нужно по основной программе, а задержка определяется настройками TMR0.
|
Тогда при размыкании кнопки снова будет дребезг, и ещё одно срабатывание
|
|
|
|
06.10.2011, 10:39
|
|
Гражданин KAZUS.RU
Регистрация: 22.07.2007
Адрес: Владивосток
Сообщений: 984
Сказал спасибо: 435
Сказали Спасибо 375 раз(а) в 197 сообщении(ях)
|
Re: Как устранить дребезг на вход INT0
Тогда так - интегрирование сигнала кнопки
char button = 0;
в таймере с периодом 0.1с
button += (button ›› 1) + кнопка?7:0;
в программе
if (button) {
...
}
|
|
|
|
06.10.2011, 11:38
|
|
Прописка
Регистрация: 07.02.2010
Адрес: Калининград
Сообщений: 148
Сказал спасибо: 72
Сказали Спасибо 23 раз(а) в 20 сообщении(ях)
|
Re: Как устранить дребезг на вход INT0
Сообщение от niXto
|
Тогда при размыкании кнопки снова будет дребезг, и ещё одно срабатывание
|
Несовсем так.
Разрешать прерывание можно по окончании таймаута проверив не нажата ли клавиша, но само нажатие желательно должно быть короче чем тайм аут, например 0.5 сек.
Еще я делал так, когда тайм аут пробегал дважды, а кнопка не отжималась я приравнивал это к повтору нажатия что удобно когда мотаешь числа.
__________________
Лужу, паяю, ЭВМ починяю.....
Последний раз редактировалось Maxim39; 06.10.2011 в 11:40.
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 05:07.
|
|