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

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

Сообщение shonty »

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

Сообщение 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-ти битным.
Реклама
Друг Кота
Аватара пользователя
Сообщения: 15655
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

Сообщение BOB51 »

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

Сообщение ARV »

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

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

Сообщение BOB51 »

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

Сообщение Just_Fluffy »

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

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

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

Сообщение ARV »

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

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

Сообщение OKF »

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

Сообщение Just_Fluffy »

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

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

Сообщение OKF »

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

Сообщение Just_Fluffy »

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

Сообщение OKF »

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

Сообщение BOB51 »

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

Сообщение Just_Fluffy »

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

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

Сообщение 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!
А ещё её невозможно испортить - у неё нет фьюзов.)
Друг Кота
Аватара пользователя
Сообщения: 6333
Зарегистрирован: Вт апр 24, 2007 07:45:40
Откуда: Minsk

Сообщение 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/
Изображение
Друг Кота
Аватара пользователя
Сообщения: 15655
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

Сообщение BOB51 »

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

Сообщение Starichok51 »

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

Сообщение AlexS4 »

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

Сообщение OKF »

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

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