Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Клавиатура на 6 линиях ввода-вывода
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > Все остальные микроконтроллеры
prottoss
Привет, Всем!

Вопрос теоретического плана - сколько кнопок можно максимум посадить на 6 линий ввода-вывода микроконтроллера. Кто что думает об этом?
arttab
Если с диодами, то думаю, штук 30.
rat
Вообще говоря всего 9
andk
Ну чего это 9?
Если кнопка умеет замыкать несколько линий - то много больше smile.gif
arttab
Если с диодами, то 30.
1-2,1-3,1-4,1-5,1-6 5 кнопок
2-1,2-3,2-4,2-5,2-6 5 кнопок
............................. 6*5=30
elserge
А если подключить внешний контроллер клавиатуры - О-о-о!!! rolleyes.gif
Ramil
Цитата(arttab @ Aug 5 2005, 08:33)
Если с диодами, то 30.
1-2,1-3,1-4,1-5,1-6  5 кнопок
2-1,2-3,2-4,2-5,2-6  5 кнопок
............................. 6*5=30
*


иммено так
Нажмите для просмотра прикрепленного файла


ещё можно использовать входы с АЦП подключив к ним резистивные
делители комутируемые кнопками - в этом случае теоретически
количество кнопок будет ограниченно только разрядностью АЦП
prottoss
Ну вы, блин, даете :-) не было только варианта с подключением к МК TCP/IP тогда кнопок было бы........................

Вообще я наверное не совсем точно поставил вопрос, имелось ввиду без внешних пасивных и активных элементов (резисторов, диодов, шифраторов-дешифраторов и прочих числодробилок).

Но сам я пришел к выводу, что не более 15. Счас готовлю страничку по этому поводу у себя на сайте, к понедельнику, думаю выложу
ReAl
Цитата(prottoss @ Aug 5 2005, 11:13)
Вообще я наверное не совсем точно поставил вопрос, имелось ввиду без внешних пасивных и активных элементов (резисторов, диодов, шифраторов-дешифраторов и прочих числодробилок).

Но сам я пришел к выводу, что не более 15. Счас готовлю страничку по этому поводу у себя на сайте, к понедельнику, думаю выложу
*


Да, без лишних деталей - N*(N-1)/2, что для 6 клавиш даёт 15.
А упомянутые 30 - это "то же самое, но с диодами".

А страничка - это правильно, так как старые книги мало кто читает :-)
yung
Если не трудно, схемку на 15 кнопок нарисуйте или на словах. А то что-то я не догоняю... wacko.gif
Make_Pic
Цитата(yung @ Aug 14 2005, 12:59)
Если не трудно, схемку на 15 кнопок нарисуйте или  на словах. А то что-то я не догоняю... wacko.gif
*

Речь идет о том, что каждый из 6 выводов может быть и входом и выходом, т.е. сканирующий ноль может быть на любом выводе, остальные в этот момент подтянуты к лог. ед. Я называю такое включение елочка (впервые применили в изделии "ТЕЛТА-216" на замену "Элетап-2" 7 лет назад) - плюсы при меньшем количестве портов больше кнопок, минусы - надо предусмотреть специальные меры, чтобы не вывести порт из строя. Кстати, то что предлагает prottoss, в его примере не аппаратной, не программной защиты нет.
Нажмите для просмотра прикрепленного файла
prottoss
Цитата(Make_Pic @ Aug 14 2005, 20:44)
Речь идет о том, что каждый из 6 выводов может быть и входом и выходом, т.е. сканирующий ноль может быть на любом выводе, остальные в этот момент подтянуты к лог. ед. Я называю такое включение елочка (впервые применили в изделии "ТЕЛТА-216" на замену "Элетап-2" 7 лет назад)  - плюсы при меньшем количестве портов больше кнопок, минусы - надо предусмотреть специальные меры, чтобы не вывести порт из строя. Кстати, то что предлагает prottoss, в его примере не аппаратной, не программной защиты нет.
Нажмите для просмотра прикрепленного файла
*


Ну, вот, давайте теперь разберемся, кто из нас чайник...
Загляните на мой сайт, на страницу где где дается описание 15 кнопочной клавиатуры с исходниками. Поясню работу на разборе одного цикла:
1. Все линии порта устанавливаются на ввод, с подключенными pull-up резисторами
2. Одна из линий устанавливается на вывод, и в нее пишется 0
3. Считывается состояние порта, при этом в бит с номером сканирующей линий (та что настроена на вывод и с нулем) пишется 1.
4. Идем на начало цикла, если не все линии просканированы

Поясните уважаемый Make_Pic, какие "надо предусмотреть специальные меры, чтобы не вывести порт из строя" ?????????????
И кто после этого из нас ЧАЙНИК????????????????????????????????????????????

Я вот считаю что как раз сдесь совершенно не надо ни каких мер, ни цента для защиты порта. Все работает как надо - 1 выход, 5 входов ВСЕГДА.


С уважением, Андрей
VVL1
Может я "чайник" - здесь всё правильно - по такой схеме строятся все пульты ДУ для теликов и пр. Но как реализовать декодирование нажатия одновременно двух клавиш? Точнее правильное определение нажатия клавиши из одного столбца. Если пальчики толстые и нажимают сразу2-е клавиши - конфуз может окзаться wink.gif
BVU
Цитата(VVL1 @ Sep 19 2005, 17:25)
Может я "чайник"  - здесь всё правильно - по такой схеме строятся все пульты ДУ для теликов и пр. Но как реализовать декодирование нажатия одновременно двух клавиш? Точнее правильное определение нажатия клавиши из одного столбца. Если пальчики толстые и нажимают сразу2-е клавиши - конфуз может окзаться wink.gif
*


Да ведь это зависит от логики программного алгоритма сканирования клавиатуры. Хоть все кнопки нажмите... biggrin.gif
prottoss
Цитата(BVU @ Sep 19 2005, 21:40)
Цитата(VVL1 @ Sep 19 2005, 17:25)
Может я "чайник"  - здесь всё правильно - по такой схеме строятся все пульты ДУ для теликов и пр. Но как реализовать декодирование нажатия одновременно двух клавиш? Точнее правильное определение нажатия клавиши из одного столбца. Если пальчики толстые и нажимают сразу2-е клавиши - конфуз может окзаться wink.gif
*


Да ведь это зависит от логики программного алгоритма сканирования клавиатуры. Хоть все кнопки нажмите... biggrin.gif
*



Здесь ответ однозначный - двойные нажатия отследить не возможно. Не буду вдаваться в объяснения. Посоветую лишь нарисовать по такой схеме клавиатуру на три линии - три кнопки и попробовать напиать алгоритм декодирования для нажатий более одной кнопки. Сразу говорю, что не получится. А кто видел пульты для теле-видео с двойными нажатиями? :-)
Виктория
Программеры утерли нос схемотехникам?!
prottoss
Цитата(Vic1 @ Sep 19 2005, 21:48)
Программеры утерли нос схемотехникам?!
*


Зачем так говорить? Сдесь все програмеры и схемотехники в одном флаконе. И это -есть- ХОРОШО.
Виктория
Я за взаимообогащение!
BVU
Цитата(prottoss @ Sep 19 2005, 17:46)
Цитата(BVU @ Sep 19 2005, 21:40)
Цитата(VVL1 @ Sep 19 2005, 17:25)
Может я "чайник"  - здесь всё правильно - по такой схеме строятся все пульты ДУ для теликов и пр. Но как реализовать декодирование нажатия одновременно двух клавиш? Точнее правильное определение нажатия клавиши из одного столбца. Если пальчики толстые и нажимают сразу2-е клавиши - конфуз может окзаться wink.gif
*


Да ведь это зависит от логики программного алгоритма сканирования клавиатуры. Хоть все кнопки нажмите... biggrin.gif
*



Здесь ответ однозначный - двойные нажатия отследить не возможно. Не буду вдаваться в объяснения. Посоветую лишь нарисовать по такой схеме клавиатуру на три линии - три кнопки и попробовать напиать алгоритм декодирования для нажатий более одной кнопки. Сразу говорю, что не получится. А кто видел пульты для теле-видео с двойными нажатиями? :-)
*



Спорить видно бесполезно, но еще раз хочу заметить все зависит от метода сканирования клавиатуры и каким МК. Так что при этом, никто не ввел ограничения, что каждый pin порта не двунапревленный и независимый на ввод запись...? Ведь вопрос ставился: "Вопрос теоретического плана". smile.gif
VVL1
Всё звисит от стоимости реализации. Если алгоритм антидребезга + декодирования какая клавиша вдавлена занимает половину памяти контроллера - и 50% МИПСов - это уже очень плохо - если только контроллер не реализует саму задачу клавиатуры smile.gif
Вопрос нужно ставить так: сколько можно реализовать кнопок оптимально, в соотношении трудоёмксть/ресурсоёмкость.
rezident
Цитата(prottoss)
Посоветую лишь нарисовать по такой схеме клавиатуру на три линии - три кнопки и попробовать напиать алгоритм декодирования для нажатий более одной кнопки.
При наличии трех линий для трех кнопок отдельной сканирующей линии и не требуется smile.gif Нужно лишь три pull-up резистора. Каждая кнопка замыкает свою линию на общий провод. Можно отследить одновременное нажатие хоть двух, хоть всех трех кнопок smile3009.gif
tobias_ivan
2rezident:
общий провд - это уже четвертая линия wink.gif
prottoss
Цитата(rezident @ Sep 19 2005, 22:33)
Цитата(prottoss)
Посоветую лишь нарисовать по такой схеме клавиатуру на три линии - три кнопки и попробовать напиать алгоритм декодирования для нажатий более одной кнопки.
При наличии трех линий для трех кнопок отдельной сканирующей линии и не требуется smile.gif Нужно лишь три pull-up резистора. Каждая кнопка замыкает свою линию на общий провод. Можно отследить одновременное нажатие хоть двух, хоть всех трех кнопок smile3009.gif
*



Когда я говорил про три кнопки и три линии я лишь проводил аналогию с 6-ю линиями и 15-ю кнопками, и предлагал три линии и три кнопки соеденить как 6 и 15 и попробовать создать алгоритм, отслеживающий одновременные нажатия двух кнопок. Уважаемый rezident, читайте внимательно топик

Цитата(VVL1 @ Sep 19 2005, 22:32)
Всё звисит от стоимости реализации. Если алгоритм антидребезга + декодирования какая клавиша вдавлена занимает половину памяти контроллера - и 50% МИПСов - это уже очень плохо - если только контроллер не реализует саму задачу клавиатуры
Вопрос нужно ставить так: сколько можно реализовать кнопок оптимально, в соотношении трудоёмксть/ресурсоёмкость.


Алгоритм антидребезга не зависит от количества кнопок и схемы подключения, он зависит от конструкции кнопок :-) А для декодирования существует много стандартных способов все зависит от программиста, эти способы реализующего. Вобще для решения любой задачи есть миллионы путей, но оптимальных - единицы.
rezident
Цитата(tobias_ivan @ Sep 20 2005, 13:54)
2rezident:
общий провд - это уже четвертая линия  wink.gif
*

Согласен. Не подумал. Был не прав. Исправлюсь. krapula.gif
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.