Например TDA7294

Форум РадиоКот • Просмотр темы - ATMega32: защита от дребезга контактов (прерывания)
Форум РадиоКот
Здесь можно немножко помяукать :)





Текущее время: Чт апр 18, 2024 04:36:41

Часовой пояс: UTC + 3 часа


ПРЯМО СЕЙЧАС:



Форум закрыт Эта тема закрыта, Вы не можете редактировать и оставлять сообщения в ней.  [ Сообщений: 29 ]  1,  
Автор Сообщение
Не в сети
 Заголовок сообщения: ATMega32: защита от дребезга контактов (прерывания)
СообщениеДобавлено: Ср фев 16, 2011 15:24:58 
Встал на лапы

Зарегистрирован: Сб янв 22, 2011 16:57:45
Сообщений: 100
Рейтинг сообщения: 0
-

_________________
Клоподавер упрыгхт


Последний раз редактировалось ellioh Сб май 14, 2011 12:48:37, всего редактировалось 2 раз(а).

Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: ATMega32: защита от дребезга контактов (прерывания)
СообщениеДобавлено: Ср фев 16, 2011 16:17:18 
Говорящий с текстолитом
Аватар пользователя

Карма: 7
Рейтинг сообщений: 12
Зарегистрирован: Вс дек 14, 2008 20:36:47
Сообщений: 1596
Откуда: SPb
Рейтинг сообщения: 0
viewtopic.php?f=20&t=6408&start=1220
Посмотри, сам мучался, очень изящный ход,
Понятно, что применительно к своему варианту
Код:
Button:

Waitms Debouncetime           ' антидребезг
Toggle Led

While Pind.2 = 0                   ' если кнопка удерживается
Waitms Debouncetime
Wend                                  ' крутимся здесь

Eifr = 64                             ' сбрасываем флаг

Return


Последний раз редактировалось saschai Ср фев 16, 2011 16:54:37, всего редактировалось 2 раз(а).

Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: ATMega32: защита от дребезга контактов (прерывания)
СообщениеДобавлено: Ср фев 16, 2011 16:52:00 
Грызет канифоль
Аватар пользователя

Карма: 2
Рейтинг сообщений: 2
Зарегистрирован: Вт июн 15, 2010 07:16:42
Сообщений: 299
Откуда: Иркутск
Рейтинг сообщения: 0
Я бы сделал так:
1. Инициализировал прерывания по спаду фронта INT0
2. В обработчике инициализировал таймер защиты от дребезга и запретил прерывание от INT0
3. Далее в цикле после sleep отсчитал временной интервал (обычно около 200 мСек)и пощупал пин на нажатие.
4. Если кнопка нажата, то запускаемся, если нет возращаемся к процедуре инициализации и засыпаем.


Вернуться наверх
 
PCBWay - всего $5 за 10 печатных плат, первый заказ для новых клиентов БЕСПЛАТЕН

Сборка печатных плат от $30 + БЕСПЛАТНАЯ доставка по всему миру + трафарет

Онлайн просмотровщик Gerber-файлов от PCBWay + Услуги 3D печати
Не в сети
 Заголовок сообщения: Re: ATMega32: защита от дребезга контактов (прерывания)
СообщениеДобавлено: Ср фев 16, 2011 17:01:07 
Открыл глаза

Зарегистрирован: Вс дек 06, 2009 19:18:11
Сообщений: 65
Откуда: Ukrain, Sumy
Рейтинг сообщения: 0
ellioh писал(а):
Добрый день,
...
Но ясно, что в случае в случае дребезга контактов (а в реальном железе он неизбежен) я насчитаю очень много нажатий на кнопку...
А как-то по-простому тут ведь ничего сделать нельзя?


Самый простой способ - это аппаратный (повесить на ногу int конденсатор).

_________________
Если на клетке со слоном увидишь надпись "Буйвол" - не верь глазам своим.


Вернуться наверх
 
Организация питания на основе надежных литиевых аккумуляторов EVE и микросхем азиатского производства

Качественное и безопасное устройство, работающее от аккумулятора, должно учитывать его физические и химические свойства, профили заряда и разряда, их изменение во времени и под влиянием различных условий, таких как температура и ток нагрузки. Мы расскажем о литий-ионных аккумуляторных батареях EVE и нескольких решениях от различных китайских компаний, рекомендуемых для разработок приложений с использованием этих АКБ. Представленные в статье китайские аналоги помогут заменить продукцию западных брендов с оптимизацией цены без потери качества.

Подробнее>>
Не в сети
 Заголовок сообщения: Re: ATMega32: защита от дребезга контактов (прерывания)
СообщениеДобавлено: Ср фев 16, 2011 17:16:36 
Первый раз сказал Мяу!

Карма: 2
Рейтинг сообщений: -3
Зарегистрирован: Пт янв 15, 2010 10:47:05
Сообщений: 20
Откуда: Украина
Рейтинг сообщения: 0
Amator писал(а):

Самый простой способ - это аппаратный (повесить на ногу int конденсатор).


Подтверждаю. Более того, по-моему чисто программно как не пиши - путевого не получится. Сам изощрялся с енкодером, чего только не выписывал - пока не повесил конденсаторы на контакты по 0.1, нормально не заработало.


Вернуться наверх
 
Новый аккумулятор EVE серии PLM для GSM-трекеров, работающих в жёстких условиях (до -40°С)

Компания EVE выпустила новый аккумулятор серии PLM, сочетающий в себе высокую безопасность, длительный срок службы, широкий температурный диапазон и высокую токоотдачу даже при отрицательной температуре. Эти аккумуляторы поддерживают заряд при температуре от -40/-20°С (сниженным значением тока), безопасны (не воспламеняются и не взрываются) при механическом повреждении (протыкание и сдавливание), устойчивы к вибрации. Они могут применяться как для автотранспорта (трекеры, маячки, сигнализация), так и для промышленных устройств мониторинга, IoT-устройств.

Подробнее>>
Не в сети
 Заголовок сообщения: Re: ATMega32: защита от дребезга контактов (прерывания)
СообщениеДобавлено: Ср фев 16, 2011 17:22:55 
Друг Кота
Аватар пользователя

Карма: 32
Рейтинг сообщений: 234
Зарегистрирован: Пт янв 29, 2010 10:27:40
Сообщений: 3851
Откуда: Москва
Рейтинг сообщения: 0
IgorKu писал(а):
Сам изощрялся с енкодером, чего только не выписывал - пока не повесил конденсаторы на контакты по 0.1, нормально не заработало.

Аналогично ковырялся с енкодером, тоже в итоге поставил емкость :))) Найти место под маленький конденсатор гораздо проще чем изобретать программный антидребезг.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: ATMega32: защита от дребезга контактов (прерывания)
СообщениеДобавлено: Ср фев 16, 2011 18:12:20 
Встал на лапы

Зарегистрирован: Сб янв 22, 2011 16:57:45
Сообщений: 100
Рейтинг сообщения: 0
-

_________________
Клоподавер упрыгхт


Последний раз редактировалось ellioh Сб май 14, 2011 12:49:15, всего редактировалось 1 раз.

Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: ATMega32: защита от дребезга контактов (прерывания)
СообщениеДобавлено: Ср фев 16, 2011 19:24:39 
Сверлит текстолит когтями
Аватар пользователя

Карма: 4
Рейтинг сообщений: 30
Зарегистрирован: Ср янв 05, 2011 16:25:15
Сообщений: 1163
Рейтинг сообщения: 0
ellioh писал(а):
Спасибо, коллеги, я как раз хотел убедиться, что не усложняю проблему. :-)
... думаю прерывание по INT0 не нужно, как и всякие конденсаторы на контактах :) . В конструкциях типа АОН и Spectrum и т.д. опрос по таймеру прекрасно со всем справлялся. Причем несложно учесть одновременное нажатие нескольких клавиш, ввести функцию "автоповтор" при удержании и многое другое. Все что нужно - завести несколько переменных и правильно обрабатывать их состояние.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: ATMega32: защита от дребезга контактов (прерывания)
СообщениеДобавлено: Ср фев 16, 2011 19:38:46 
Встал на лапы

Зарегистрирован: Сб янв 22, 2011 16:57:45
Сообщений: 100
Рейтинг сообщения: 0
-

_________________
Клоподавер упрыгхт


Последний раз редактировалось ellioh Сб май 14, 2011 12:49:37, всего редактировалось 1 раз.

Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: ATMega32: защита от дребезга контактов (прерывания)
СообщениеДобавлено: Ср фев 16, 2011 20:30:09 
Ум, честь и совесть. И скромность.
Аватар пользователя

Карма: 97
Рейтинг сообщений: 2058
Зарегистрирован: Чт дек 28, 2006 08:19:56
Сообщений: 18030
Откуда: Новочеркасск
Рейтинг сообщения: 0
Медали: 2
Получил миской по аватаре (1) Мявтор 3-й степени (1)
ощущение такое, что никто не в курсе, как борятся с дребезгом по-настоящему... конденсаторы... ё-моё! традиционная борьба с дребезгом, причем ВЕСЬМА эффективная, заключается в проверке через 10-15 миллисекунд уроня на кнопке и сравнения его с тем, кторый породил само событие. то есть, если у вас прерывание настроено на срабатывание по спаду (хотя, если мне память не изменяет, для просыпа лучше использовать срабатывание по низкому уровню), то в обработчике прерывания этого вам надо подождать 10-15 миллисекунд и проверить уровень на пине - если он НИЗКИЙ, то делать свои черные дела, если ВЫСОКИЙ - спать дальше. да, перед тем, как выйти из прерывания, надо сбросить флаг запроса прерывания, так как из-за дребезга он мог установиться повторно.

и всех делов. и никаких кондеров!

_________________
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: ATMega32: защита от дребезга контактов (прерывания)
СообщениеДобавлено: Ср фев 16, 2011 22:35:06 
Опытный кот

Зарегистрирован: Чт фев 18, 2010 13:51:56
Сообщений: 877
Рейтинг сообщения: 0
ARV писал(а):
то в обработчике прерывания этого вам надо подождать 10-15 миллисекунд

Делать огромную задержку в прерывании?

Хотя идея правильная, только задержку стоит делать на таймере(не важно, аппаратном или программном на основе общего аппаратного) и по его прерыванию уже проверять состояние на входе.
И временную границу дребезга обычно берут не 10-15мс, а 50-100мс.
ARV писал(а):
и всех делов. и никаких кондеров!

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


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: ATMega32: защита от дребезга контактов (прерывания)
СообщениеДобавлено: Ср фев 16, 2011 23:05:54 
Ум, честь и совесть. И скромность.
Аватар пользователя

Карма: 97
Рейтинг сообщений: 2058
Зарегистрирован: Чт дек 28, 2006 08:19:56
Сообщений: 18030
Откуда: Новочеркасск
Рейтинг сообщения: 0
Медали: 2
Получил миской по аватаре (1) Мявтор 3-й степени (1)
если прерывание используется только для пробуждения - почему бы в нем не сделать огромную задержку? проснется девайс на 15 мс позже или раньше - это роли не сыграет.

если я не ошибаюсь, в среднем дребезг маломощных контактов длится около 10 мс, так что 100 - это явно с большим запасом.

_________________
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: ATMega32: защита от дребезга контактов (прерывания)
СообщениеДобавлено: Чт фев 17, 2011 00:51:43 
Встал на лапы

Зарегистрирован: Сб янв 22, 2011 16:57:45
Сообщений: 100
Рейтинг сообщения: 0
-

_________________
Клоподавер упрыгхт


Последний раз редактировалось ellioh Сб май 14, 2011 12:49:57, всего редактировалось 1 раз.

Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: ATMega32: защита от дребезга контактов (прерывания)
СообщениеДобавлено: Чт фев 17, 2011 01:07:25 
Ум, честь и совесть. И скромность.
Аватар пользователя

Карма: 97
Рейтинг сообщений: 2058
Зарегистрирован: Чт дек 28, 2006 08:19:56
Сообщений: 18030
Откуда: Новочеркасск
Рейтинг сообщения: 0
Медали: 2
Получил миской по аватаре (1) Мявтор 3-й степени (1)
уважаемый, я думаю, что ваши опасения на счет задержек в прерывании и нарушения стиля "по событиям" НАПРАСНЫ. с точки зрения основной программы, которая СПИТ, задержка при пробуждении не играет никакой роли совершенно! из режима "глубокого сна", т.е. при максимальной экономии энергии, МК не в состоянии проснуться даже за 15 мс, поэтому реальное время выхода из прерывания СОВЕРШЕННО БЕЗРАЗЛИЧНО. мне так кажется.

а в вашем подходе есть существенный изъян: вы регистрируете КУЧУ прерываний и анализируете их. а мой вариант - ТОЛЬКО ОДНО ПРЕРЫВАНИЕ и анализ уровня. это намного проще, и, пожалуй, правильнее.

_________________
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: ATMega32: защита от дребезга контактов (прерывания)
СообщениеДобавлено: Чт фев 17, 2011 04:34:29 
Грызет канифоль
Аватар пользователя

Карма: 2
Рейтинг сообщений: 2
Зарегистрирован: Вт июн 15, 2010 07:16:42
Сообщений: 299
Откуда: Иркутск
Рейтинг сообщения: 0
В принципе можно использовать пустое прерывание по int (без обработчика) чтобы проснуться, а кнопку опрашивать по таймеру.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: ATMega32: защита от дребезга контактов (прерывания)
СообщениеДобавлено: Чт фев 17, 2011 11:08:56 
Встал на лапы

Зарегистрирован: Сб янв 22, 2011 16:57:45
Сообщений: 100
Рейтинг сообщения: 0
-

_________________
Клоподавер упрыгхт


Последний раз редактировалось ellioh Сб май 14, 2011 12:50:16, всего редактировалось 2 раз(а).

Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: ATMega32: защита от дребезга контактов (прерывания)
СообщениеДобавлено: Чт фев 17, 2011 11:35:25 
Ум, честь и совесть. И скромность.
Аватар пользователя

Карма: 97
Рейтинг сообщений: 2058
Зарегистрирован: Чт дек 28, 2006 08:19:56
Сообщений: 18030
Откуда: Новочеркасск
Рейтинг сообщения: 0
Медали: 2
Получил миской по аватаре (1) Мявтор 3-й степени (1)
я ж говорил, что имею ввиду режим максимальной экономии, т.е. Power Down... а из Standby пробуждается быстрее, факт.

в общем, мое дело - уведомить о способе, а будете вы им пользоваться или нет - дело ваше.

_________________
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: ATMega32: защита от дребезга контактов (прерывания)
СообщениеДобавлено: Чт фев 17, 2011 11:42:43 
Встал на лапы

Зарегистрирован: Сб янв 22, 2011 16:57:45
Сообщений: 100
Рейтинг сообщения: 0
-

_________________
Клоподавер упрыгхт


Последний раз редактировалось ellioh Сб май 14, 2011 12:50:38, всего редактировалось 1 раз.

Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: ATMega32: защита от дребезга контактов (прерывания)
СообщениеДобавлено: Пт фев 18, 2011 14:23:50 
Открыл глаза

Зарегистрирован: Пн апр 05, 2010 22:30:53
Сообщений: 78
Рейтинг сообщения: 0
Обратите внимание еще на один аппаратный подход


Вложения:
дребез.JPG [110.72 KiB]
Скачиваний: 1841
Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: ATMega32: защита от дребезга контактов (прерывания)
СообщениеДобавлено: Пт фев 18, 2011 14:45:36 
Ум, честь и совесть. И скромность.
Аватар пользователя

Карма: 97
Рейтинг сообщений: 2058
Зарегистрирован: Чт дек 28, 2006 08:19:56
Сообщений: 18030
Откуда: Новочеркасск
Рейтинг сообщения: 0
Медали: 2
Получил миской по аватаре (1) Мявтор 3-й степени (1)
lsdy писал(а):
Обратите внимание еще на один аппаратный подход

а лучше всего использовать магниточувствительные микросхемы и кнопки с магнитами - у них дребезг принципиально отсутствует... ничего, что каждая под 1$ стоит - разве на такие мелочи надо обращать внимание?

_________________
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!


Вернуться наверх
 
Показать сообщения за:  Сортировать по:  Вернуться наверх
Форум закрыт Эта тема закрыта, Вы не можете редактировать и оставлять сообщения в ней.  [ Сообщений: 29 ]  1,  

Часовой пояс: UTC + 3 часа


Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 15


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

Найти:
Перейти:  


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
Extended by Karma MOD © 2007—2012 m157y
Extended by Topic Tags MOD © 2012 m157y