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

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

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

Сообщение shonty »

не в тему
Спойлер
ARV писал(а):get_key может возвращать до 255 кнопок, но в этом случае..
это уже пианино получится :)
Adrift
Вымогатель припоя
Сообщения: 539
Зарегистрирован: Вт окт 01, 2024 15:22:33

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

Сообщение Adrift »

[uquote="Just_Fluffy",url="/forum/viewtopic.php?p=4668289#p4668289"]там как минимум timer должен быть индивидуален для каждой кнопки. И длинное/короткое нажатие в коде OKF тоже не предусмотрено, так что не передергивайте.[/uquote]
Допустим ShortThreshold у нас 30ms. Нажимаем первую кнопку, таймер видит изменение и начинает считать. Через 5 ms нажимается вторая кнопка, таймер сбрасывается и начинает считать с 0(если считает вверх), через 30ms детектим нажатие двух кнопок, но их может быть и 32. Недостаток в том, что счет идет от последнего изменения, однако на практике это совершенно не заметно.
Just_Fluffy писал(а):Опять же, вырвано из контекста.
Я всего лишь говорила про экономию памяти. А как автоповтор будет реализовывать автор вертикальных счетчиков - вопрос алгоритма)))
В случае вертикальных счетчиков автоповтор и длинные нажатия будут реализованы при помощи дополнительных счетчиков, но даже без этого экономии памяти то никакой нет, в обоих случаях потратили 3 байта на 8 кнопок. Правда у нас же тема не про ассм или AVR, потому я бы сделал счетчик минимум 16-ти битным.
Аватара пользователя
BOB51
Друг Кота
Сообщения: 15545
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

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

Сообщение BOB51 »

Ну и апетиты... ("До 255кнопок")
Тогда просто берём готовую микруху и не морочим мозг...
От 155ИВ1/ИВ3 до 580вв79(Intel8279), а результат обрабатываем программно.
8)
Аватара пользователя
ARV
Ум, честь и совесть. И скромность.
Сообщения: 18544
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск
Контактная информация:

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

Сообщение ARV »

аппетиты ту ни при чем. например, для комфортного ввода значений требуется минимум 13 кнопок, что уже больше, чем 8.
и, пожалуйста, не нужно вот это вот 155ИВ1/ИВ3 до 580вв79(Intel8279) - в любительских конструкциях на микроконтроллерах этому места нет от слова совсем.
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
Аватара пользователя
BOB51
Друг Кота
Сообщения: 15545
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

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

Сообщение BOB51 »

Почему это нет места?
Всё хорошо в зависимости от требуемых задач и возможностей.
Периферийные расширители никто не отменял, китайские контроллеры дисплея/клавиатуры весьма распространённое явление.
Вв79 это конечно монстр (персоналки сегодня мало кто задумает "с нуля" разрабатывать да ещё и на антиквариате, но вот для какой экзотики музыкальной там можно извлечь пользу.
А вот про ИВ1//ИВ3 (и их забугорные аналоги) зря подзабыли.
Дополнительно никто не ограничивает создание собственных периферийных контроллеров из отдельных МК.
Другое дело до пяти кноп с интераетивными пиктограммами их функционала на дисплее (при динамической смене функционала в зависимости от текущей задачи).
8)
Аватара пользователя
Just_Fluffy
Вымогатель припоя
Сообщения: 532
Зарегистрирован: Ср июн 29, 2022 16:25:45

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

Сообщение Just_Fluffy »

shonty писал(а):до 255 кнопок......
это уже пианино получится
Музикальную школу нельзя обмануть)) У пианины 88 кнопок (иногда 85)...

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

У меня базовая функция антидребезга использует 1 байт на кнопку, режим "гистерезисный счетчик" - тут ранее писала.
Событийное расширение использует:
- 1 байт на индивидуальный конфиг либо идет общий конфиг на все кнопки одним дефайном
- 1 или 2 байта на счетчик для автоповтора/длинного нажатия (зависит от времени длинного нажатия/повтора и от частоты опроса, настраивается typedef-ом).
Это все дергается по таймеру (обычно по железному, который сисклок еще делает)
В основную программу "торчит" какой то getEvent, который отдает события (в зависимости от конфига) нажатие, отпускание, длинное нажатие, повтор нажатия, поворот энкодера.
Для энкодера там отдельный обработчик, опрашивает стразу три физических сигнала - 2 фазы и кнопку энкодера. И отдельная переменная - число щелчков энкодера и направление.
Белая и Пушистая
Аватара пользователя
ARV
Ум, честь и совесть. И скромность.
Сообщения: 18544
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск
Контактная информация:

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

Сообщение ARV »

BOB51 писал(а):Почему это нет места?
ну как нету... как некое ретро-хобби, пожалуй, можно применить, но для практических целей, т.е. для устройств, сделанных самостоятельно и приносящих какую-то пользу, место для этих монстров отсутствует. хотя бы по той причине, что одна микросхема серии К155 (не говоря про что-то более "мощное") потребляет столько же, сколько целый микроконтролер, работающий на максимуме производительности. еще и с учетом периферии, возможно.
я, конечно, не могу похватстаться слоновьей памятью, но вроде как 580-я серия требовала аж 3 питания: +5, -5 и +12 вольт!!! возможно, это только ЦПУ такое извращение требовал, но осадочек остался навсегда. 580-серия фтопку!
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
OKF
Это не хвост, это антенна
Сообщения: 1385
Зарегистрирован: Вт июн 07, 2011 08:03:18

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

Сообщение OKF »

[uquote="ARV",url="/forum/viewtopic.php?p=4668326#p4668326"]я, конечно, не могу похватстаться слоновьей памятью, но вроде как 580-я серия требовала аж 3 питания: +5, -5 и +12 вольт!!! возможно, это только ЦПУ такое извращение требовал, но осадочек остался навсегда. 580-серия фтопку![/uquote]
Да, только процессор. Но были варианты и с одним +5. Но, как ни крути, никуда сейчас её не приткнуть, потому что МК перекрывают и по габаритам, и по потреблению, и по удобству программирования. Только музей.)
Аватара пользователя
Just_Fluffy
Вымогатель припоя
Сообщения: 532
Зарегистрирован: Ср июн 29, 2022 16:25:45

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

Сообщение Just_Fluffy »

ARV писал(а):580-я серия требовала аж 3 питания: +5, -5 и +12 вольт!!! возможно, это только ЦПУ
Только ЦПУ. но подача питания еще и в определенной последовательности должна была быть. И снятие питания - в обратной последовательности. Либо одновременно (с разницей в сколько то там миллисекунд). А с учетом разного тока потребления и наличи фильтрующих емкостей по питанию - одновременность была не всегда тривиальной задачей.

И я себе представляю - к атмеге8 в TQFP прикрутить 580ВВ55 в DIP-40 )) И электростанцию рядом.
Белая и Пушистая
OKF
Это не хвост, это антенна
Сообщения: 1385
Зарегистрирован: Вт июн 07, 2011 08:03:18

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

Сообщение OKF »

[uquote="Just_Fluffy",url="/forum/viewtopic.php?p=4668347#p4668347"]...но подача питания еще и в определенной последовательности должна была быть.[/uquote]
Та не, с последовательностью никто не заморачивался - лишь бы было. Некоторые ЦПУ допускали отсутствие -5, но всё равно, тоска. Люди ставили (и ставят!) "компактные" DC/DC - на что только не пойдёшь заради первой любви.)
Аватара пользователя
Just_Fluffy
Вымогатель припоя
Сообщения: 532
Зарегистрирован: Ср июн 29, 2022 16:25:45

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

Сообщение Just_Fluffy »

OKF, может быть и не заморачивались... Я столкнулась с ВМ80 только в составе КУВТ Корвет в школе. И на страничках журнала Радио. Там даже релейные схемы приводились вроде как, для правильно подачи и снятия питания.
Белая и Пушистая
OKF
Это не хвост, это антенна
Сообщения: 1385
Зарегистрирован: Вт июн 07, 2011 08:03:18

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

Сообщение OKF »

[uquote="Just_Fluffy",url="/forum/viewtopic.php?p=4668360#p4668360"]Я столкнулась с ВМ80 только в составе КУВТ Корвет в школе.[/uquote]
Ну, так вы ж ещё молоды.) А мне приходилось на этих 580 лепить с 0-ля. И тогда небыло ни ПК, ни ассемблера, ни даже программатора ПЗУ - только голые микросхемы.)
Аватара пользователя
BOB51
Друг Кота
Сообщения: 15545
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

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

Сообщение BOB51 »

Периферия 580х пятивольтовая.
Насчёт прожорливости - у всех 155х есть много аналогов как наших, так и забугорных. Те же 1565, 1533 и много чего ещё.
Так что иногда и посмотреть на рассыпуху жисть облегчающу вполне можно. Да и периферия расширителей 580й не ограничивается -были и 1810 и те же импортные.
Для стационарного питания не столь уж и проблема.
:wink:
Аватара пользователя
Just_Fluffy
Вымогатель припоя
Сообщения: 532
Зарегистрирован: Ср июн 29, 2022 16:25:45

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

Сообщение Just_Fluffy »

BOB51, если честно, то колхозинг расширителей портов для большой клавиатуры - это сродни юному пионеру - придумать себе трудности, а потом героически хи преодолевать.
Из серии - ради спортивного интересу реализуем на тине13 убер-пианину, к которому придется по i2c подключить клавиатуру на 88 клавиш через расширители портов. Коих надо, что б набрать матрицу 8*11.
А если не спортивный интерес, а нормальная постановка задачи - то можно взять ту же мегу8 в tqfp32 - там 20 GPIO как раз на кнопки хватит, и на ШИМ-выход. А если без кварца - то еще 2 GPIO останется.
Цена меги - может даже меньше, чем тиня + расширители портов.
В +/- те же деньги можно вообще взять какой то СТМ об 48 или 64 ногах - тогда кнопок можно втулить - на три рояля хватит. И на светомузыку останется. В СТМках еще и памяти слегка больше, нежели в тине13 )) Дребезгом можно обдребезжаться будет)

OKF, ох, давайте не будем об возрасте.... Его уже достаточно много )))
"- Мадам, сколько вам лет?
- Ну я приближаюсь к 50...
- С какой стороны, мадам?"
Белая и Пушистая
OKF
Это не хвост, это антенна
Сообщения: 1385
Зарегистрирован: Вт июн 07, 2011 08:03:18

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

Сообщение OKF »

[uquote="Just_Fluffy",url="/forum/viewtopic.php?p=4668384#p4668384"]А если не спортивный интерес, а нормальная постановка задачи - то можно взять ту же мегу8 в tqfp32 - там 20 GPIO как раз на кнопки хватит, и на ШИМ-выход. А если без кварца - то еще 2 GPIO останется.[/uquote]
А если взять китайскую мегу, то при том же qfp32, будем иметь 30(!) GPIO и 1% intrc на 32мгц. И, которая дешевле меги8!
А ещё её невозможно испортить - у неё нет фьюзов.)
Аватара пользователя
Jack_A
Друг Кота
Сообщения: 6307
Зарегистрирован: Вт апр 24, 2007 07:45:40
Откуда: Minsk

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

Сообщение Jack_A »

[uquote="ARV",url="/forum/viewtopic.php?p=4668326#p4668326"]580-я серия требовала аж 3 питания: +5, -5 и +12 вольт!!![/uquote]
Так недолго же мучились: появилась Z80 с той же системой команд, но с одним +5В - и всем стало хорошо.
https://habr.com/ru/articles/809205/
Изображение
Аватара пользователя
BOB51
Друг Кота
Сообщения: 15545
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

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

Сообщение BOB51 »

Так уже не раз говорилось - вести речь об каких либо наиболее удачных алгоритмах можно только относительно конкретного схемотехнического решения.
Остальное будет только перебором всех возможных решений, которые только можно придумать.
При том, что всё эти решения будут верными.
8)
Аватара пользователя
Starichok51
Модератор
Сообщения: 19040
Зарегистрирован: Сб авг 14, 2010 15:05:51
Откуда: г. Озерск, Челябинская обл.

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

Сообщение Starichok51 »

Jack_A писал(а):появилась Z80 с той же системой команд
не просто с той же, а гораздо шире. там несколько префиксов расширения.
и за счет этих префиксов команды расширяются до двух, трех и, помнится, четырехбайтовых команд.
я на "спектруме" очень много программировал на ассемблере.
Мудрость приходит вместе с импотенцией...
Когда на русском форуме переходят на Вы, в реальной жизни начинают бить морду.
Аватара пользователя
AlexS4
Друг Кота
Сообщения: 6646
Зарегистрирован: Пт сен 10, 2021 15:19:36
Откуда: Протвино

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

Сообщение AlexS4 »

11x8 - элементарнейше сводится к 4x8 или к 4x6 1м корпусом 2ичного дешифратора (например симметричного коммутатора, мультиплексора - демультиплексора 16x1, вроде 74vlc150 )
ровно 1 корпус и ничего более, ни одного резистора, это совсем несложно, ни для пионеров ни для скаутов ни для каубоев :))
OKF
Это не хвост, это антенна
Сообщения: 1385
Зарегистрирован: Вт июн 07, 2011 08:03:18

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

Сообщение OKF »

Только зачем? Если без него меньше и по размерам, и по потреблению. Не говоря уже о разводке и монтаже.
Ответить

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