Реклама на сайте DatasheetsDatasheets

KAZUS.RUN - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Новости электроники Новости Литература, электронные книги Литература Документация, даташиты Документация Поиск даташитов (datasheets)Поиск PDF
  От производителей
Новости поставщиков
В мире электроники

  Сборник статей
Книги и журналы
FAQ по электронике

  Datasheets
Поиск SMD
Онлайн справочник

Принципиальные схемы Схемы Каталоги программ, сайтов Каталоги Общение, форум Общение Ваш аккаунтАккаунт
  Каталог схем
Схемы и проекты
Принципиальные схемы
  Программы
Каталог сайтов
Калькуляторы
  Форумы по электронике
Помощь проекту

Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей...

 
Опции темы

Как устранить дребезг на вход INT0

Непрочитано 05.10.2011, 13:44  
gary2007
Почётный гражданин KAZUS.RUN
 
Аватар для gary2007
 
Регистрация: 24.09.2007
Адрес: Полтава, UA
Сообщений: 2,440
Сказал спасибо: 375
Сказали Спасибо 1,052 раз(а) в 621 сообщении(ях)
gary2007 на пути к лучшему
По умолчанию Re: Как устранить дребезг на вход INT0

RS триггер, повесить кнопку через него.
Реклама:
__________________
Мелочи не решают главного. Они решают всё!
gary2007 вне форума  
Непрочитано 05.10.2011, 17:18  
begun
Гражданин KAZUS.RUN
 
Регистрация: 18.07.2006
Сообщений: 894
Сказал спасибо: 244
Сказали Спасибо 31 раз(а) в 28 сообщении(ях)
begun на пути к лучшему
По умолчанию Re: Как устранить дребезг на вход INT0

RS триггер уменьшит роль мк и усложнит схему
begun вне форума  
Непрочитано 05.10.2011, 17:21  
Maxim39
Прописка
 
Аватар для Maxim39
 
Регистрация: 07.02.2010
Адрес: Калининград
Сообщений: 148
Сказал спасибо: 72
Сказали Спасибо 23 раз(а) в 20 сообщении(ях)
Maxim39 на пути к лучшему
По умолчанию Re: Как устранить дребезг на вход INT0

Вопрос хороший, я думал решить его следующим образом:
При первом прерывании по INT0 в маске прерываний запрещать его, и засекать по TMR0 период времени, по прерыванию от TMR0 маску прерываний восстанавливать.
Получается проц не ждет работает как нужно по основной программе, а задержка определяется настройками TMR0.
__________________
Лужу, паяю, ЭВМ починяю.....

Последний раз редактировалось Maxim39; 05.10.2011 в 17:23. Причина: опечатка
Maxim39 вне форума  
Непрочитано 05.10.2011, 22:47  
Zoosman
Вид на жительство
 
Регистрация: 03.06.2006
Адрес: Израиль
Сообщений: 388
Сказал спасибо: 2,062
Сказали Спасибо 337 раз(а) в 156 сообщении(ях)
Zoosman на пути к лучшему
По умолчанию Re: Как устранить дребезг на вход INT0

А если вот так;

if(key_pressed)
{
while (key_pressed);
...нужный код....
}
Zoosman вне форума  
Непрочитано 05.10.2011, 22:53  
Easyrider83
Гуру портала
 
Аватар для Easyrider83
 
Регистрация: 27.10.2008
Адрес: ЕС
Сообщений: 10,821
Сказал спасибо: 919
Сказали Спасибо 4,289 раз(а) в 2,570 сообщении(ях)
Easyrider83 на пути к лучшему
По умолчанию Re: Как устранить дребезг на вход INT0

Zoosman, где и что вы собрались зацикливать?
Easyrider83 вне форума  
Непрочитано 06.10.2011, 09:47  
begun
Гражданин KAZUS.RUN
 
Регистрация: 18.07.2006
Сообщений: 894
Сказал спасибо: 244
Сказали Спасибо 31 раз(а) в 28 сообщении(ях)
begun на пути к лучшему
По умолчанию Re: Как устранить дребезг на вход INT0

Я и так и сяк но всеравно лезет временами лишний.
begun вне форума  
Непрочитано 06.10.2011, 09:55  
ampy
Гражданин KAZUS.RUN
 
Регистрация: 22.07.2007
Адрес: Владивосток
Сообщений: 996
Сказал спасибо: 448
Сказали Спасибо 388 раз(а) в 202 сообщении(ях)
ampy на пути к лучшему
По умолчанию Re: Как устранить дребезг на вход INT0

Сообщение от Easyrider83 Посмотреть сообщение
Zoosman, где и что вы собрались зацикливать?
while (условие) ;
зацикливает точку с запятой, т.е. это пустой цикл.
но смысла в этом нет, в данном случае.

Мой голос - за метод Maxim39.

Последний раз редактировалось ampy; 06.10.2011 в 09:57.
ampy вне форума  
Непрочитано 06.10.2011, 10:05  
niXto
Почётный гражданин KAZUS.RUN
 
Аватар для niXto
 
Регистрация: 13.10.2007
Адрес: Беларусь
Сообщений: 8,026
Сказал спасибо: 60
Сказали Спасибо 3,941 раз(а) в 2,302 сообщении(ях)
niXto на пути к лучшему
По умолчанию Re: Как устранить дребезг на вход INT0

Сообщение от Maxim39 Посмотреть сообщение
При первом прерывании по INT0 в маске прерываний запрещать его, и засекать по TMR0 период времени, по прерыванию от TMR0 маску прерываний восстанавливать.
Получается проц не ждет работает как нужно по основной программе, а задержка определяется настройками TMR0.
Тогда при размыкании кнопки снова будет дребезг, и ещё одно срабатывание
niXto вне форума  
Непрочитано 06.10.2011, 10:39  
ampy
Гражданин KAZUS.RUN
 
Регистрация: 22.07.2007
Адрес: Владивосток
Сообщений: 996
Сказал спасибо: 448
Сказали Спасибо 388 раз(а) в 202 сообщении(ях)
ampy на пути к лучшему
По умолчанию Re: Как устранить дребезг на вход INT0

Тогда так - интегрирование сигнала кнопки

char button = 0;

в таймере с периодом 0.1с

button += (button ›› 1) + кнопка?7:0;

в программе

if (button) {
...
}
ampy вне форума  
Непрочитано 06.10.2011, 11:38  
Maxim39
Прописка
 
Аватар для Maxim39
 
Регистрация: 07.02.2010
Адрес: Калининград
Сообщений: 148
Сказал спасибо: 72
Сказали Спасибо 23 раз(а) в 20 сообщении(ях)
Maxim39 на пути к лучшему
По умолчанию Re: Как устранить дребезг на вход INT0

Сообщение от niXto Посмотреть сообщение
Тогда при размыкании кнопки снова будет дребезг, и ещё одно срабатывание
Несовсем так.
Разрешать прерывание можно по окончании таймаута проверив не нажата ли клавиша, но само нажатие желательно должно быть короче чем тайм аут, например 0.5 сек.

Еще я делал так, когда тайм аут пробегал дважды, а кнопка не отжималась я приравнивал это к повтору нажатия что удобно когда мотаешь числа.
__________________
Лужу, паяю, ЭВМ починяю.....

Последний раз редактировалось Maxim39; 06.10.2011 в 11:40.
Maxim39 вне форума  
 
Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Эрудиция и смекалка slavar1 Отвлекитесь, эмбеддеры! 13012 05.10.2025 09:34
[Решено] Так, рассказик :)) Я долго ржал :)) DK Отвлекитесь, эмбеддеры! 7 31.08.2007 22:33
[Решено] Сборник перлов любителей кабельщины mikesmith Отвлекитесь, эмбеддеры! 135 14.08.2007 15:49
[Решено] Всем эмбеддерам посвящается... Decan Отвлекитесь, эмбеддеры! 0 24.10.2005 14:43


Часовой пояс GMT +4, время: 00:40.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.