Например TDA7294

Форум РадиоКот • Просмотр темы - Опрос кнопок микроконтроллером
Форум РадиоКот
Здесь можно немножко помяукать :)

Текущее время: Вс янв 25, 2026 00:26:26

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


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



Начать новую тему Ответить на тему  [ Сообщений: 509 ]     ... , , , 22, , , ,  
Автор Сообщение
Не в сети
 Заголовок сообщения: Re: Опрос кнопок микроконтроллером
СообщениеДобавлено: Пн фев 17, 2025 08:00:02 
Ум, честь и совесть. И скромность.
Аватар пользователя

Карма: 98
Рейтинг сообщений: 2135
Зарегистрирован: Чт дек 28, 2006 08:19:56
Сообщений: 18454
Откуда: Новочеркасск
Рейтинг сообщения: 1
Медали: 2
Получил миской по аватаре (1) Мявтор 3-й степени (1)
Осознайте, наконец, что опрос кнопок по таймеру на 100% давит дребезг, и начните, наконец, радоваться жизни! Не повторяйте эту мантру "антидребезг", она уводит вас от реальности в мир грез и страданий...

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

если же тупо увеличивать время опроса то могут быть пропущены короткие нажатия. или двойное нажатие будет интерпритировано как одиночное и наоборот, или возникнет существенная задержка реакции. (100mS например это уже заметно и часто неприятно)

я всегда принимаю решение по фиксации изменения дребезжащего сигнала когда 2-3 семпла с таймера дали одинаковое значение после последнего изменения.
это тривиально делается сразу для группы сигналов простейшим кодом из битовых операций. букавльно 3-6 инструкций в таймерном прерывании.

давайте мало-мало определимся.
1. мы делаем устройство тренировки мастера кун-фу? только специально тренированный человек способен совершать ОСОЗНАННО нажатия на кнопку с периодом меньше 0,1 с (100 мс), у остальных это либо механическое тыканье, которое невозможно своевременно остановить или начать, либо просто случайное везение. то есть смею предположить, что нет, мы рассчитываем на обычного человека.
2. мы делаем систему управления пуском ядерных ракет или на худой конец систему дистанционного управления роботизированным хирургом-кардиологом? случайный пропуск нажатия или случайное нажатие кнопки приведет к катастрофическим последствиям? предположу, что нет и в этом случае.

итак, опрос состояния битов порта 1 раз в 50 мс обеспечит реакцию на нажатие не хуже, чем 1 раз за 100 мс (Брюс Ли ликует), и не допустит пропуска или случайного срабатывания из-за дребезга (поскольку если у вас кнопка дребезжит более 50 мс - это говно, а не кнопка).

для справки: все учебники по защите от дребезга учат, что дребезг длится около 10-15 мс у среднестатистической кнопки.

зачем вы сами себе придумываете проблемы?! чтобы героически их решать? из мазохизма? из манеризма и эстетсва?

Добавлено after 5 minutes 21 second:
дополнительно: как бы вы не боролись с дребезгом, это неизбежно приводит к тому, что должны возникать паузы между опросами. и если мой алгоритм, по-вашему, вызывает неприятные задержки в данных условиях, ваш алгоритм в тех же условиях не сможет лучше бороться с дребезгом и тоже приведет к тем же самым (а то и большим) задержкам! это ведь логика: если кнопка дребезжит 80 мс, то любой надежный алгоритм будет обязан ждать не менее 80 мс!!! и не важно, эти 80 мс будут регулярными по таймеру или адаптивными по логике анализа состояний.

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

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


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Опрос кнопок микроконтроллером
СообщениеДобавлено: Пн фев 17, 2025 08:05:03 
Друг Кота
Аватар пользователя

Карма: 96
Рейтинг сообщений: 1501
Зарегистрирован: Вт мар 16, 2010 22:02:27
Сообщений: 15396
Откуда: ДОНЕЦК
Рейтинг сообщения: 0
Обработчик кнопок "сам по себе" не существует.
Соответственно и его содержимое будет различаться довольно существенно.
Я пока долизываю "упрощёнку" для 8/10 позиционного "кракозяброва" дисплейчика.
Курсор в виде децимальной точки знакоместе, четыре/пять кнопок "джойстика", отдельно кнопа+Светик активации клавиатуры. Интерактив с оперативной сменой назначения и функционала кнопы в зависимости от хода программы и пиктограммы в позиции курсора.
Режимы сработала по нажатии, однократная, многократная(при удержании), авто отключение сканирования кнопок при длительном отсутствии нажатии(активности).
Заложен(но пока не доделан) режим однократной сработки по отпусканию.
Собственно для малых конструкций с семисегментниками.
Функционал ессно похуже, чем у 1602 с полноценными пиктограммами и строкой подсказки, но для малых поделок вполне с годиться.
:hunger:
8)


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Опрос кнопок микроконтроллером
СообщениеДобавлено: Пн фев 17, 2025 08:11:58 
Ум, честь и совесть. И скромность.
Аватар пользователя

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

не надо путать уровни.

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

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


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Опрос кнопок микроконтроллером
СообщениеДобавлено: Пн фев 17, 2025 08:37:17 
Друг Кота
Аватар пользователя

Карма: 52
Рейтинг сообщений: 2114
Зарегистрирован: Пт ноя 11, 2016 05:48:09
Сообщений: 7065
Откуда: Сердце Пармы
Рейтинг сообщения: 0
Медали: 2
Получил миской по аватаре (2)
дребезг возможен только при нажатии или отпускании кнопки и, если опрос не сделан на прерываниях, а происходит по таймеру то дребезг впринципе не может навредить. но есть ешё другой вид глюка - пойманная помеха/наводка, она обычно очень короткая, но иногда случайно попадает ровно в момент опроса кнопки... вот из-за неё и стоит хотябы раз "переспросить" кнопку перед тем как принять решение о её нажатости

_________________
Для тех, кто не учил магию мир полон физики :)
Безграмотно вопрошающим про силовую или высоковольтную электронику я не отвечаю, а то ещё посадят за участие в (само)убиении оболтуса...


Вернуться наверх
 
Эиком - электронные компоненты и радиодетали
Не в сети
 Заголовок сообщения: Re: Опрос кнопок микроконтроллером
СообщениеДобавлено: Пн фев 17, 2025 08:52:17 
Друг Кота
Аватар пользователя

Карма: 96
Рейтинг сообщений: 1501
Зарегистрирован: Вт мар 16, 2010 22:02:27
Сообщений: 15396
Откуда: ДОНЕЦК
Рейтинг сообщения: 0
"Все взаимосвязанно" и зависит от конечной цели применения.
Как и задачки
исполнение по нажатию
исполнение по отпусканию
:wink:
Без конкретики задачи разговор о кнопках будет бесконечен.
8)


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Опрос кнопок микроконтроллером
СообщениеДобавлено: Пн фев 17, 2025 09:30:08 
Модератор
Аватар пользователя

Карма: 153
Рейтинг сообщений: 2927
Зарегистрирован: Сб авг 14, 2010 15:05:51
Сообщений: 18930
Откуда: г. Озерск, Челябинская обл.
Рейтинг сообщения: 0
Медали: 1
Лучший человек Форума 2017 (1)
Ivanoff-iv, интересно, в какую попу ты помещаешь свои устройства, где такие мощные наводки, что создают помеху на коротеньком проводнике от пина до кнопки?
а если нужно убрать такие мощные наводки, то вместо внутренней подтяжки входа используй внешний низкоомный резистор, на который уже ничего существенного не наведется.

_________________
Мудрость приходит вместе с импотенцией...
Когда на русском форуме переходят на Вы, в реальной жизни начинают бить морду.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Опрос кнопок микроконтроллером
СообщениеДобавлено: Пн фев 17, 2025 10:02:51 
Друг Кота
Аватар пользователя

Карма: 52
Рейтинг сообщений: 2114
Зарегистрирован: Пт ноя 11, 2016 05:48:09
Сообщений: 7065
Откуда: Сердце Пармы
Рейтинг сообщения: 0
Медали: 2
Получил миской по аватаре (2)
нет, я с этим сам не сталкиваюсь, у меня есть алгоритм, опроса, который мне нравится (с одним счётчиком на все кнопки), но и тут часто слышу про такое и у знакомых мастеров бывало... особенно если рядом сильноточные и высоковольтные цепи коммутируются.

хотя... евть и у меня старая поделка, всё руки не дойдут разобраться (там алгоритм опроса немного другой, кнопка опрашивается по прерыванию, и хоть вход там сильно задушен многократными перепроверками - всё равно иногда ложные срабатывания пролазят... (хотя я не уверен, что через кнопку... там кроме кнопки есть вход детектора 0 и ИК приёмник... но, если честно, то мнеикажется, что глюк пролазит не через кнопку и не через ИК, т.к. они сбрасывают счётчик, а он остаётся несброшенным...

_________________
Для тех, кто не учил магию мир полон физики :)
Безграмотно вопрошающим про силовую или высоковольтную электронику я не отвечаю, а то ещё посадят за участие в (само)убиении оболтуса...


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Опрос кнопок микроконтроллером
СообщениеДобавлено: Пн фев 17, 2025 10:15:04 
Мучитель микросхем
Аватар пользователя

Карма: 1
Рейтинг сообщений: 39
Зарегистрирован: Ср янв 11, 2012 18:20:26
Сообщений: 473
Рейтинг сообщения: 0
если настолько сильные помехи, что влияют на трассу от кнопки до мк, то про любые интерфейсы и периферию вообще можно забыть..) да и мк лучше не включать, иначе наводка может и на вывод ресет действовать))


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Опрос кнопок микроконтроллером
СообщениеДобавлено: Пн фев 17, 2025 10:25:49 
Ум, честь и совесть. И скромность.
Аватар пользователя

Карма: 98
Рейтинг сообщений: 2135
Зарегистрирован: Чт дек 28, 2006 08:19:56
Сообщений: 18454
Откуда: Новочеркасск
Рейтинг сообщения: 0
Медали: 2
Получил миской по аватаре (1) Мявтор 3-й степени (1)
оффтоп: меня в своё время убила инфа про "системы, защищенные от радиации". типа ОЗУ с автоматическим контролем возникающих ошибок - дескать, прилетел нейтрон радиационный, выбил бит в ОЗУ - система аппаратно посчитала CRC и выдала сигнал контроллеру, что доверять памяти нельзя. я опускаю риторический вопрос о том, что помешало этому нейтрону повредить "аппаратный" вычислитель CRC... это такое... лучше не задумываться.

вроде все хорошо, но вопрос: и чо контроллер с этим сигналом делать должен?! особенно для случая, когда исполняемая программа так же в ОЗУ (речь шла о компьютерах)?! если доверять нельзя, то и обработать сигнал нельзя, ведь неизвестно, что там программа из недостоверного ОЗУ исполнит... в итоге этот сигнал, по сути, сводится к выключению процессора и всё. хороша защита от радиации, которая вырубает систему в случае "несанкционированных" сбоев...

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

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


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Опрос кнопок микроконтроллером
СообщениеДобавлено: Пн фев 17, 2025 10:38:11 
Мучитель микросхем

Карма: 1
Рейтинг сообщений: 52
Зарегистрирован: Вт окт 01, 2024 15:22:33
Сообщений: 492
Рейтинг сообщения: 0
вроде все хорошо, но вопрос: и чо контроллер с этим сигналом делать должен?! особенно для случая, когда исполняемая программа так же в ОЗУ (речь шла о компьютерах)?! если доверять нельзя, то и обработать сигнал нельзя, ведь неизвестно, что там программа из недостоверного ОЗУ исполнит... в итоге этот сигнал, по сути, сводится к выключению процессора и всё. хороша защита от радиации, которая вырубает систему в случае "несанкционированных" сбоев...

Сейчас в простейших STM32 за 40 центов есть хардварный контроль четности SRAM, а в более продвинутых - ECC(Error code correction). Нарушается целостность SRAM, генерится прерывание и да, сбросить мк чтобы он перезапустился и дальше работал правильно вполне разумное решение когда альтернативой является его потенциальная продолжительная неправильная работа.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Опрос кнопок микроконтроллером
СообщениеДобавлено: Пн фев 17, 2025 10:52:08 
Сверлит текстолит когтями
Аватар пользователя

Карма: 1
Рейтинг сообщений: 23
Зарегистрирован: Чт авг 21, 2014 11:11:48
Сообщений: 1277
Откуда: краснодарский край
Рейтинг сообщения: 0
А если пьезоэлектрические кнопки сделать,наступил на неё,выдала одиночный импульс.
Будет у них дребезг ? От перенапряжения можно снабер поставить. Правда ж я умная ? :oops:


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Опрос кнопок микроконтроллером
СообщениеДобавлено: Пн фев 17, 2025 11:07:23 
Мучитель микросхем
Аватар пользователя

Карма: 1
Рейтинг сообщений: 39
Зарегистрирован: Ср янв 11, 2012 18:20:26
Сообщений: 473
Рейтинг сообщения: 0
главный колбасист писал(а):
Правда ж я умная ? :oops:
правда.. но этого вслух никто не скажет.. :dont_know:
иначе свою несостоятельность придётся признать :)


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Опрос кнопок микроконтроллером
СообщениеДобавлено: Пн фев 17, 2025 11:09:38 
Друг Кота
Аватар пользователя

Карма: 31
Рейтинг сообщений: 917
Зарегистрирован: Пт сен 10, 2021 15:19:36
Сообщений: 6290
Откуда: Протвино
Рейтинг сообщения: 0
ARV писал(а):
если кнопка дребезжит 80 мс, то любой надежный алгоритм будет обязан ждать не менее 80 мс!!! и не важно, эти 80 мс будут регулярными по таймеру или адаптивными по логике анализа состояний.

"простой" алгоритм при периоде таймера ~= периоду дребезга не гарантирует что дребезг "пройден" потому что не синхронизирован с фактом нажатия.

ARV писал(а):
мы делаем систему управления пуском ядерных ракет

мое усложнение кода, как я уже сказал, микроскопическое, нет смысла "оптимизировать" пару инструкций mcu просто чтоб подчеркнуть: "а на этот раз давайте забабахаем говнопроектик". подобные упрощения имеют смысл только в учебных проектах, чтоб не перегружать обучающегося всяким сбивающим с толку, но у меня обычно таких целей нет :dont_know:
и я не переписываю этот код каждый раз, у меня просто есть заготовленные макросы, инлайны или функции для разных архитектур и языков.

ARV писал(а):
мы делаем устройство тренировки мастера кун-фу?

обычно у меня общий подход к обработке сигналов, гдето дребезг кнопки, или рэлюхи какогото удаленного на 500m датчика, гдето просто дребезг квантования медленного сигнала. часто подобные сигналы сгруппированы в 1 порт и обрабатываются обшим алгоритмом (по 1 его прогону на каждые обрабатываемые 8 сигналов).
можно назвать эстетством а можно системным подходом :)


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Опрос кнопок микроконтроллером
СообщениеДобавлено: Пн фев 17, 2025 11:19:14 
Ум, честь и совесть. И скромность.
Аватар пользователя

Карма: 98
Рейтинг сообщений: 2135
Зарегистрирован: Чт дек 28, 2006 08:19:56
Сообщений: 18454
Откуда: Новочеркасск
Рейтинг сообщения: 0
Медали: 2
Получил миской по аватаре (1) Мявтор 3-й степени (1)
"простой" алгоритм при периоде таймера ~= периоду дребезга не гарантирует что дребезг "пройден" потому что не синхронизирован с фактом нажатия.
поскольку дребезг возникает не сам по себе, а при изменении состояния кнопки, то даже если в момент опроса он "еще не пройден", все равно факт изменения состояния будет зафиксирован либо сразу в момент опроса, либо при следующем опросе (т.е. спустя злосчастные 100 мс или даже менее). и это так же универсальный подход для любых дребезжащих сигналов.

в этой теме КРАМ неоднократно рекомендовал нарисовать временную диаграмму опроса дребезжащего сигнала... похоже, никто не воспользовался советом, отсюда и продолжающиеся дискуссии о том, что якобы "таймер ничего не гарантирует".

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

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


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Опрос кнопок микроконтроллером
СообщениеДобавлено: Пн фев 17, 2025 11:22:49 
Мучитель микросхем
Аватар пользователя

Карма: 1
Рейтинг сообщений: 39
Зарегистрирован: Ср янв 11, 2012 18:20:26
Сообщений: 473
Рейтинг сообщения: 0
если время_обработки_события + время_следующего_опроса > времени_дребезга, то смысла нет обрабатывать дребезг..

AlexS4 писал(а):
или рэлюхи какогото удаленного на 500m датчика
если ожидается наводка на линии, то гарантии, что она не обойдёт программный алгоритм нет абсолютно никакой :dont_know:


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Опрос кнопок микроконтроллером
СообщениеДобавлено: Пн фев 17, 2025 11:32:22 
Ум, честь и совесть. И скромность.
Аватар пользователя

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

Например, для космического спутника, да? ;)
это видимость защиты от сбоев, увы...

Добавлено after 2 minutes 18 seconds:
если ожидается наводка на линии, то гарантии, что она не обойдёт программный алгоритм нет абсолютно никакой :dont_know:
при значительных наводках на линии беспокоиться надо совсем о другом, да... например о том, чтобы устройство вообще осталось целым.

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

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

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


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Опрос кнопок микроконтроллером
СообщениеДобавлено: Пн фев 17, 2025 11:40:47 
Мучитель микросхем
Аватар пользователя

Карма: 1
Рейтинг сообщений: 39
Зарегистрирован: Ср янв 11, 2012 18:20:26
Сообщений: 473
Рейтинг сообщения: 0
ARV писал(а):
видимость защиты
ну да, как железный купол израиля, до первой атаки..
или как крестик, типа от всего уберегает, но в случае чего - то к врачу или в полицию..))


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Опрос кнопок микроконтроллером
СообщениеДобавлено: Пн фев 17, 2025 12:03:52 
Говорящий с текстолитом

Карма: -7
Рейтинг сообщений: 191
Зарегистрирован: Вт авг 15, 2017 10:51:13
Сообщений: 1675
Рейтинг сообщения: 0
А если пьезоэлектрические кнопки сделать,наступил на неё,выдала одиночный импульс.
Будет у них дребезг ?
Дребезга не будет только если резонансная частота их будет порядка десятка Гц или меньше. Но боюсь себе представить размер таких пьезокристаллов. И какой слон потребуется для наступания. :)))


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Опрос кнопок микроконтроллером
СообщениеДобавлено: Пн фев 17, 2025 12:05:55 
Нашел транзистор. Понюхал.
Аватар пользователя

Карма: 9
Рейтинг сообщений: 27
Зарегистрирован: Сб янв 29, 2011 21:43:38
Сообщений: 166
Откуда: Чернь, Тульская обл
Рейтинг сообщения: 0
бла-бла... :facepalm: А библиотека то где ? Или просто кусок кода, который будет определять нажатие, отпускание, клик, длинное нажатие, удержание. Для меня, глупого, без высоких рассуждений и умозаключений. Для меня, который учит си на примерах. а не в универах :))


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Опрос кнопок микроконтроллером
СообщениеДобавлено: Пн фев 17, 2025 12:10:42 
Мучитель микросхем
Аватар пользователя

Карма: 1
Рейтинг сообщений: 39
Зарегистрирован: Ср янв 11, 2012 18:20:26
Сообщений: 473
Рейтинг сообщения: 0
и ещё момент)) у всего должны быть свойства. и у защит тоже.
иначе разговор о "защите" просто беспредметный.

Допустим программный алгоритм предохраняет от наводки..
Тут же вопрос: от какой наводки? её кто-то в глаза видел, или программист сам её нафантазировал?))
Считает и сравнивает 7 сэмплов.. А если прилетит ещё, а 8-й сэмпл не сравнивается?

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


Вернуться наверх
 
Показать сообщения за:  Сортировать по:  Вернуться наверх
Начать новую тему Ответить на тему  [ Сообщений: 509 ]     ... , , , 22, , , ,  

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


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

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


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

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


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