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

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

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

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

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

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

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

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

RS триггер, повесить кнопку через него.
Реклама:
__________________
Мелочи не решают главного. Они решают всё!
gary2007 вне форума  
Непрочитано 05.10.2011, 17:18  
begun
Гражданин KAZUS.RU
 
Регистрация: 18.07.2006
Сообщений: 866
Сказал спасибо: 230
Сказали Спасибо 29 раз(а) в 27 сообщении(ях)
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,067
Сказали Спасибо 337 раз(а) в 156 сообщении(ях)
Zoosman на пути к лучшему
По умолчанию Re: Как устранить дребезг на вход INT0

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

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

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

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

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

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

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

Сообщение от Maxim39 Посмотреть сообщение
При первом прерывании по INT0 в маске прерываний запрещать его, и засекать по TMR0 период времени, по прерыванию от TMR0 маску прерываний восстанавливать.
Получается проц не ждет работает как нужно по основной программе, а задержка определяется настройками TMR0.
Тогда при размыкании кнопки снова будет дребезг, и ещё одно срабатывание
niXto вне форума  
Непрочитано 06.10.2011, 10:39  
ampy
Гражданин KAZUS.RU
 
Регистрация: 22.07.2007
Адрес: Владивосток
Сообщений: 984
Сказал спасибо: 435
Сказали Спасибо 375 раз(а) в 197 сообщении(ях)
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 Отвлекитесь, эмбеддеры! 12774 07.07.2024 10:56
[Решено] Так, рассказик :)) Я долго ржал :)) DK Отвлекитесь, эмбеддеры! 7 31.08.2007 22:33
[Решено] Сборник перлов любителей кабельщины mikesmith Отвлекитесь, эмбеддеры! 135 14.08.2007 15:49
[Решено] Всем эмбеддерам посвящается... Decan Отвлекитесь, эмбеддеры! 0 24.10.2005 14:43


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


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot