Опрос кнопок микроконтроллером

Дисплеи, датчики и прочие функциональные узлы, управляемые МК.
Аватара пользователя
shonty
Мучитель микросхем
Сообщения: 473
Зарегистрирован: Ср янв 11, 2012 18:20:26

Re: Опрос кнопок микроконтроллером

Сообщение shonty »

OKF писал(а):А если взять китайскую мегу, то при том же qfp32, будем иметь 30(!) GPIO и 1% intrc на 32мгц. И, которая дешевле меги8!
Поддерживаю..

Там и математика аппаратная 32-х битная..
Вот только когда начал разбираться, то оказалость, что QFP32L это урезанная версия QFP48L. Урезана не только по количеству выводов, а также по функционалу. В частности урезан функционал АЦП.
А в корпусе QFP48L на али в продаже почему-то не встречается :dont_know:
Аватара пользователя
ARV
Ум, честь и совесть. И скромность.
Сообщения: 18544
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск
Контактная информация:

Re: Опрос кнопок микроконтроллером

Сообщение ARV »

Далась вам эта 32-битная математика! Какая-то странная манера действовать под лозунгом "шоб було". Уверен, что в ваших проектах и в 16-битной математике реальной нужды нет. Как, собственно, и в мегагерцах и тому подобном "функционале АЦП".

Добавлено after 3 minutes 16 seconds:
Здесь на форуме, пожалуй, только КРАМ и делает нечто нуждающееся в математике сложнее таблицы умножения...
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
Аватара пользователя
shonty
Мучитель микросхем
Сообщения: 473
Зарегистрирован: Ср янв 11, 2012 18:20:26

Re: Опрос кнопок микроконтроллером

Сообщение shonty »

ARV писал(а):Уверен, что в ваших проектах и в 16-битной математике реальной нужды нет.
:shock: Я что? Так плохо выгляжу?

Например под BME280 пришлось писать и MUL_u64x24_80 и прочие вычисления..

По поводу "уверенности". можно ознакомиться с эффектом Даннинга-Крюгера :)
Аватара пользователя
Jack_A
Друг Кота
Сообщения: 6307
Зарегистрирован: Вт апр 24, 2007 07:45:40
Откуда: Minsk

Re: Опрос кнопок микроконтроллером

Сообщение Jack_A »

[uquote="Starichok51",url="/forum/viewtopic.php?p=4668544#p4668544"]я на "спектруме" очень много программировал на ассемблере.[/uquote]
У меня касание к Z80 произошло только на одной халтурке - надо было модернизировать один импортный прибор. Степень моего тогдашнего авантюризма: до этого я ни строчки не написал для Z80, не было компилятора, и у меня в распоряжении был только листинг, не совпадающий с конкретной прошивкой и с комментами на ... венгерском языке. :)
Млолдой был, 50 лет, наглый. :)
К удивлению всех - оно заработало!
Изображение
OKF
Это не хвост, это антенна
Сообщения: 1385
Зарегистрирован: Вт июн 07, 2011 08:03:18

Re: Опрос кнопок микроконтроллером

Сообщение OKF »

А у меня было мелкосерийное ус-во на z80 (чуть более 100 шт.). Началось в 1990-м, думал что отработает до 2000-ного максимум, реально доработало до 2010-го.)
Аватара пользователя
Just_Fluffy
Вымогатель припоя
Сообщения: 532
Зарегистрирован: Ср июн 29, 2022 16:25:45

Re: Опрос кнопок микроконтроллером

Сообщение Just_Fluffy »

AlexS4 писал(а):11x8 - элементарнейше сводится к 4x8 или к 4x6 1м корпусом 2ичного дешифратора (например симметричного коммутатора, мультиплексора - демультиплексора 16x1, вроде 74vlc150 )
ровно 1 корпус и ничего более, ни одного резистора, это совсем несложно
И смысл? места занимает больше, плата сложнее... На тиню13 все равно не натянуть...
В единичных радиолюбительских применениях, когда в ящике лежит сотня тринадцатых тиней и ни одной многоножки с 20+ GPIO - еще можно думать в сторону расширителей портов...
Но в остальных случаях проще взять другой МК.
Белая и Пушистая
Аватара пользователя
AlexS4
Друг Кота
Сообщения: 6646
Зарегистрирован: Пт сен 10, 2021 15:19:36
Откуда: Протвино

Re: Опрос кнопок микроконтроллером

Сообщение AlexS4 »

Just_Fluffy, OKF, ну это ж надуманный гипотетический пример, а иногда для какойто конкретной задачи полупериметр матрицы может быть больше доступного (свободного) числа gpio портов 1 mcu, сколько бы ног у него не было, я с таким несколько раз практически сталкивался, переходить на чипы большего размера не всегда так же просто как с tiny13 на tiny2313 например, по разным соображениям, и имхо применить простой расширитель в виде стандартной логики (демультиплексор или сдвиговый регистр или счетчик) - разумнее чем ляпать доп mcu чисто чтоб организовать развертку на матрице.
Аватара пользователя
chern55
Нашел транзистор. Понюхал.
Сообщения: 166
Зарегистрирован: Сб янв 29, 2011 21:43:38
Откуда: Чернь, Тульская обл

Re: Опрос кнопок микроконтроллером

Сообщение chern55 »

из библиотеки Гайвера Александра замутил для себя на c++
Вложения
button_AVR.rar
(2.18 КБ) 129 скачиваний
Последний раз редактировалось chern55 Вс фев 16, 2025 13:21:40, всего редактировалось 1 раз.
Аватара пользователя
chern55
Нашел транзистор. Понюхал.
Сообщения: 166
Зарегистрирован: Сб янв 29, 2011 21:43:38
Откуда: Чернь, Тульская обл

Re: Опрос кнопок микроконтроллером

Сообщение chern55 »

А вот на си тоже из Гайвера. Убрал накликивания и некоторые другие функции. В архиве файл протеуса для оценки работы. Перебрал 2 десятка библиотек для кнопок, лучше не нашел. Самому написать ума не хватает, поздно уже усиленно учить язык. У кого есть более удобная библиотека для кнопок, поделитель, пож.
Вложения
button_test.rar
(88.53 КБ) 117 скачиваний
Аватара пользователя
shonty
Мучитель микросхем
Сообщения: 473
Зарегистрирован: Ср янв 11, 2012 18:20:26

Re: Опрос кнопок микроконтроллером

Сообщение shonty »

chern55 писал(а):Перебрал 2 десятка библиотек для кнопок,
:facepalm:
chern55 писал(а): У кого есть более удобная библиотека для кнопок, поделитель, пож.
Спойлер

Код: Выделить всё

	in R16, PIND
	sbrs R16, (бит кнопки)			; пропустить если бит в регистре установлен
	rjmp на_выполнение		
Пользуюсь и не выпендриваюсь :))) и оно работает))
Но ведь набегут критики и расскажут про дребезг))
Аватара пользователя
Just_Fluffy
Вымогатель припоя
Сообщения: 532
Зарегистрирован: Ср июн 29, 2022 16:25:45

Re: Опрос кнопок микроконтроллером

Сообщение Just_Fluffy »

shonty, chern55, опять же, все зависит от алгоритма и требований. Как по мне, гайверовский вариант - расточителен по выделяемому ОЗУ на кнопку...
Опять же, универсальные варианты всегда будут в чем то переусложнены. Поэтому варианты без дребезга тоже имеют право на существование.
Белая и Пушистая
Аватара пользователя
shonty
Мучитель микросхем
Сообщения: 473
Зарегистрирован: Ср янв 11, 2012 18:20:26

Re: Опрос кнопок микроконтроллером

Сообщение shonty »

Just_Fluffy, задержку на дребезг вставляю если нужно дифференцировать длинное нажатие от короткого..
Тут да, иначе длинное может сработать как короткое.
В иных случаях сразу на выполнение))
Adrift
Вымогатель припоя
Сообщения: 539
Зарегистрирован: Вт окт 01, 2024 15:22:33

Re: Опрос кнопок микроконтроллером

Сообщение Adrift »

[uquote="shonty",url="/forum/viewtopic.php?p=4683177#p4683177"]иначе длинное может сработать как короткое.[/uquote]
У меня если для кнопки разрешено длинное и короткое нажатие, то короткое автоматически срабатывает при отпускании.
Аватара пользователя
shonty
Мучитель микросхем
Сообщения: 473
Зарегистрирован: Ср янв 11, 2012 18:20:26

Re: Опрос кнопок микроконтроллером

Сообщение shonty »

Adrift писал(а):то короткое автоматически срабатывает при отпускании.
да, но после фильтрации на дребезг))
иначе:
shonty писал(а):длинное может сработать как короткое
если обрабатывать когда не закончилась фаза дребезга.
Аватара пользователя
Just_Fluffy
Вымогатель припоя
Сообщения: 532
Зарегистрирован: Ср июн 29, 2022 16:25:45

Re: Опрос кнопок микроконтроллером

Сообщение Just_Fluffy »

Еще раз, зависит от требуемого алгоритма поведения кнопки.
Белая и Пушистая
Аватара пользователя
Jack_A
Друг Кота
Сообщения: 6307
Зарегистрирован: Вт апр 24, 2007 07:45:40
Откуда: Minsk

Re: Опрос кнопок микроконтроллером

Сообщение Jack_A »

[uquote="shonty",url="/forum/viewtopic.php?p=4683163#p4683163"]Но ведь набегут критики и расскажут про дребезг))[/uquote]
Так уже неоднократно было сказано: это зависит от конкретной ситуации.
Гоняем, к примеру курсор по менюшке. На сколько позиций перескочит он от одного нажатия кнопки у ненавистника антидребезга - зависит только от меры хреновости примнённых им кнопок.
Изображение
Аватара пользователя
ARV
Ум, честь и совесть. И скромность.
Сообщения: 18544
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск
Контактная информация:

Re: Опрос кнопок микроконтроллером

Сообщение ARV »

Осознайте, наконец, что опрос кнопок по таймеру на 100% давит дребезг, и начните, наконец, радоваться жизни! Не повторяйте эту мантру "антидребезг", она уводит вас от реальности в мир грез и страданий...
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
Аватара пользователя
shonty
Мучитель микросхем
Сообщения: 473
Зарегистрирован: Ср янв 11, 2012 18:20:26

Re: Опрос кнопок микроконтроллером

Сообщение shonty »

Jack_A писал(а):На сколько позиций перескочит он от одного нажатия кнопки у ненавистника антидребезга
ни на сколько))
у меня задержка перед заходом в опрос :)

Добавлено after 10 minutes 38 seconds:
Не всегда, но иногда так цикл оформляю:
Спойлер

Код: Выделить всё

LOOP:

; тут опрос кнопок..

rjmp LOOP

еxit_LOOP: ; сюда возвращаюсь из подпрограмм
;тут задержка
rjmp LOOP
Аватара пользователя
AlexS4
Друг Кота
Сообщения: 6646
Зарегистрирован: Пт сен 10, 2021 15:19:36
Откуда: Протвино

Re: Опрос кнопок микроконтроллером

Сообщение AlexS4 »

[uquote="ARV",url="/forum/viewtopic.php?p=4683272#p4683272"]Осознайте, наконец, что опрос кнопок по таймеру на 100% давит дребезг, и начните, наконец, радоваться жизни! Не повторяйте эту мантру "антидребезг", она уводит вас от реальности в мир грез и страданий...[/uquote]
ну это довольно смелое утверждение,
если дребезг длился все время между точками опроса то алгоритм может считать непредсказуемую последовательность из 4х вариантов при 2х последовательных опросах.

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

я всегда принимаю решение по фиксации изменения дребезжащего сигнала когда 2-3 семпла с таймера дали одинаковое значение после последнего изменения.
это тривиально делается сразу для группы сигналов простейшим кодом из битовых операций. букавльно 3-6 инструкций в таймерном прерывании.
OKF
Это не хвост, это антенна
Сообщения: 1385
Зарегистрирован: Вт июн 07, 2011 08:03:18

Re: Опрос кнопок микроконтроллером

Сообщение OKF »

[uquote="AlexS4",url="/forum/viewtopic.php?p=4683351#p4683351"]...по фиксации изменения дребезжащего сигнала когда 2-3 семпла с таймера дали одинаковое значение после последнего изменения.[/uquote]
Только не семпла (период опроса может быть разный), а в течение 20..50 мс длительности, обычно.
Ответить

Вернуться в «Периферия»