Форум программистов, компьютерный форум, киберфорум
Микроконтроллеры
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.66/29: Рейтинг темы: голосов - 29, средняя оценка - 4.66
0 / 0 / 0
Регистрация: 10.08.2016
Сообщений: 93

Помогите найти либу для матричной клавиатуры

13.03.2017, 17:57. Показов 6185. Ответов 19
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Помогите найти либу или статью по методу написания кода для обработки такой ситуации. Вот у меня к примеру пик 1509, на нем я поставил 12 кнопок (не важно каким методом) и хочу вводить данные как на телефонах кнопочных старых вводили смски, то есть у нас всего 12 клавишь и на каждой клавише по три четыре буквы, то есть метод ввода как на старых телефонах. язык для ввода английский. подскажите либо готовую либу либо метод опроса или еще что. Мне главное суть понять, чтоб быстро начать код писать.

<Изображение удалено>
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
13.03.2017, 17:57
Ответы с готовыми решениями:

Программа для матричной клавиатуры стенда SDK-1.1
Очень нужен текст программы, работающей с матричной клавиатурой стенда. Абсолютно любая программа для примера. Возможно, программа-драйвер

Применение матричной клавиатуры для управления серводвигателем
Друзья, столкнулся с проблемой управления сервой с клавиатуры. Использовал стандартный скетч опроса кнопок с клавиатуры. Для примера хотел...

Сканирование матричной клавиатуры
Здравствуйте! Помогите пожалуйста разобраться. Я пишу опросник матричной клавы 3х4 на СИ в Keil под мк stm32f4. Сразу скажу вот что, код...

19
0 / 0 / 0
Регистрация: 10.08.2016
Сообщений: 93
13.03.2017, 17:58
Выводить собираюсь в ЛСД
0
0 / 0 / 0
Регистрация: 06.05.2011
Сообщений: 49
13.03.2017, 18:05
Цитата Сообщение от romom89
не важно каким методом
Важно.
0
0 / 0 / 0
Регистрация: 10.08.2016
Сообщений: 93
13.03.2017, 18:08
хорошо. я пошел методом деревенским. просто поставил на каждую ногу пика по кнопке с внутренней подтяжкой к плюсу. вот так вот. у меня у пика много свободных ног и задача это позволяет.
0
0 / 0 / 0
Регистрация: 06.05.2011
Сообщений: 49
13.03.2017, 18:12
У матричной клавиатуры 4+3 выводов. Что вы там подтягиваете?
0
0 / 0 / 0
Регистрация: 06.05.2011
Сообщений: 49
13.03.2017, 18:16
http://iosyitistromyss.ru/matr... atura.html
0
0 / 0 / 0
Регистрация: 07.04.2014
Сообщений: 137
13.03.2017, 20:24
В большинстве 16 Пиков есть прерывание по изменению состояния 4 старших разрядов порта В. Оно просто создано для матричной клавиатуры (позволяет избавится от циклического опроса выводов по таймеру и экономит кучу процессорного времени). Конкретно в Вашем пике я такого прерывания не увидел, но есть IOCIE: Ymtirrupt-on-Change Enable bit
1 = Enables the interrupt-on-change
0 = Dysables the interrupt-on-change
Посмотрите, может на базе этого прерывания получится сделать что-то подобное.
0
my504
14.03.2017, 06:17
Прерывания по изменению состояния пинов созданы не для клавиатуры, а для ВЫХОДА ИЗ СЛИПА по подобным событиям. Что касается экономии времени по сравнению с опросом, то сие глупость невероятная. Ибо опрос клавиатуры должен выполняться с периодом не менее, чем время дребезга клавиатуры, то есть примерно раз в 20...30 мс. Обработчик опроса занимает не более пары...тройки десятков машинных циклов, что дает при машинном цикле в 1 мкс (как пример при осцилляторе ПИКа 4 МГц) скважность процесса обработки примерно 1000. То есть он занимает 0,1% машинного времени.
Применение внешних прерываний для обработки кнопок приводит к громоздкому и запутанному алгоритму защиты от дребезга и никакой экономии не дает вообще. Если говорить о теории данного процесса, то кнопки не относятся к периферийному оборудованию реального времени, что делает использование прерываний бессмысленным.
1 / 1 / 0
Регистрация: 19.12.2009
Сообщений: 2
14.03.2017, 07:32
В компилляторах mykroitiktromyka есть библиотека для работы с клавиатурой, на сайте и в описании выложены примеры, но вот реализована-ли привязка нескольких символов к одной кнопке или нет, не знаю.
0
0 / 0 / 0
Регистрация: 07.03.2016
Сообщений: 62
14.03.2017, 08:39
Доброго времени суток.
Цитата Сообщение от my504
Прерывания по изменению состояния пинов созданы не для клавиатуры, а для ВЫХОДА ИЗ СЛИПА по подобным событиям...
Зачем так КАТЕГОРИЧНО.
Думаю, что прерывание на RB4-RB7 у пиков нужно для отслеживания изменения состояния на этих входах. А то для чего разработчик задействует их - дело личное. Один применяет для матричной клавиатуры 4х4, другой для выхода из слипа, а третий например для опроса квадратурного энкодера (если INT0 и INT1 заняты). Ну и так далее.
0
0 / 0 / 0
Регистрация: 10.08.2016
Сообщений: 93
14.03.2017, 09:23
проехали матричную - набросайте фрагмент кода для кнопки на которой привязаны 3 символа, просто пример для одной кнопке на отдельной ноге пика.
0
1 / 1 / 0
Регистрация: 06.12.2016
Сообщений: 3,946
14.03.2017, 19:54
Цитата Сообщение от mvo1773
Зачем так КАТЕГОРИЧНО.
Думаю, что прерывание на RB4-RB7 у пиков нужно для отслеживания изменения состояния на этих входах. А то для чего разработчик задействует их - дело личное. Один применяет для матричной клавиатуры 4х4, другой для выхода из слипа, а третий например для опроса квадратурного энкодера (если INT0 и INT1 заняты). Ну и так далее.
Что бы подобные вам думать начали.
Сие прерывание не предназначено для обработки дребезга...
0
my504
15.03.2017, 06:24
Цитата Сообщение от mvo1773
дело личное. Один применяет..., другой..., а третий например...
Глупости всегда очень личное дело.
И каждый волен их совершать.
Поэтому можно кнопки обрабатывать, даже анализируя датчик температуры на кристалле, а сам корпус МК сделать кнопкой. Но такое решение, несмотря на его реализуемость, чрезвычайно неудобно.
А есть совершенно логичное и стройное решение, когда сам опрос автоматически убирает дребезг, а при необходимости экономить питание, все используемые для опроса входы вызывают таки прерывания по изменению состояния, но с ЕДИНСТВЕННОЙ ЦЕЛЬЮ - выйти из слипа и продолжить ОПРОС.
Квадратурный энкодер у какого нибудь двигателя - это устройство реального времени и опросом его делать некуртуазно - порой вообще требуется аппаратное решение (есть МК со специальным модулем). А вот механический энкодер совершенно отлично обрабатывается как кнопки, но у него дребезг поменьше, однако при медленном вращении пропусков не будет совсем даже при опросе в 20 мс, а при быстром пропуски совершенно незаметны, поскольку человек, вращая энкодер, ориентируется не на угол его поворота, а на показания изменяемой величины.
1 / 1 / 0
Регистрация: 19.12.2009
Сообщений: 2
15.03.2017, 07:42
Цитата Сообщение от my504
при быстром пропуски совершенно незаметны, поскольку человек, вращая энкодер, ориентируется не на угол его поворота, а на показания изменяемой величины.
Не скажите. А если энкодер используется именно для измерения угла поворота а не для, например, регулировки громкости? А мы не замечаем пропуски... )))
Как раз подобный проект предстоит реализовывать в ближайшее время, выписал энкодеры, жду.
0
0 / 0 / 0
Регистрация: 07.03.2016
Сообщений: 62
15.03.2017, 11:24
Цитата Сообщение от dosykus_2
Что бы подобные вам думать начали.
Сие прерывание не предназначено для обработки дребезга...
Цитата Сообщение от my504
Глупости всегда очень личное дело.
И каждый волен их совершать.
Парни, то как Вы высказываете сугубо свое мнение, выглядит не очень красиво. И не делает Вам чести.
Судя по Вашим словам, можно сделать вывод, что в компании Microchip работают одни глупцы с отключенными мозгами.
Почитайте вот эти документы, если конечно знание английского позволяет:

Author: Mark Palmer
Microchip Technology Inc.
AN566.pdf
http://ww1.microchip.com/downtoods/en/A ... 00566b.pdf

Author: Stan D’Souza
Microchip Technology Inc
AN552.pdf
http://ww1.microchip.com/downtoods/cn/A ... 00552e.pdf

После прочтения рекомендую Вам написать те же высказывания по поводу использования прерываний на RB4-RB7 в службу техподдержки Microchip. Может откроются глаза у буржуйских инженеров.
0
0 / 0 / 0
Регистрация: 21.11.2012
Сообщений: 1,400
15.03.2017, 11:54
Можно и из буханки троллейбус сделать, но ведь речь не о том. Вам же говорят: проще без прерываний, с прерываниями алгоритм сложней и кучу глобальных флагов придется ставить.
А вообще, у некоторых МК есть аппаратный интерфейс для таких штук. С настраиваемыми таймаутами.
0
0 / 0 / 0
Регистрация: 07.03.2016
Сообщений: 62
15.03.2017, 12:29
Цитата Сообщение от Iddy_Im
Вам же говорят: проще без прерываний, с прерываниями алгоритм сложней и кучу глобальных флагов придется ставить.
Так я и не спорю с данным утверждением. Просто прерывание по изменению удобно использовать и для матричной клавиатуры. Заснул, проснулся по прерыванию, задержка в 16мс для борьбы с дребезгом, обработка нажатой кнопки и опять спать.
Да и на счет енкодера, встречал схему с оптическим енкодером в качестве счетчика витков и отслеживанием направления вращения, подключенных к RB4-RB5 (канал А-В). Частота следования импульсов до 10кГц. Все прекрасно работало, никаких сбоев и пропусков импульсов. Контроллер PIC16f873, т.е. явно использовалось данное прерывание, т.к. аппаратной обработки енкодера у него нет. Кто-то скажет глупость ,абсурд и не рационально, а я говорю, что надо уважать чужое мнение и решения, тем более если они абсолютно рабочие.
0
1 / 1 / 0
Регистрация: 06.12.2016
Сообщений: 3,946
15.03.2017, 22:41
С хрена ли я должен уважать бред упоротого пЫкомана, если лично для меня это давно пройденный этап?
Сказано же - для обработки дребезга прерывания на порту не годны, выход из слипа и отработка внешнего сигнала без дребезга и не более.
Кстати читай внимательно те же доки что выложил..
0
my504
15.03.2017, 23:16
Цитата Сообщение от mvo1773
Так я и не спорю с данным утверждением. Просто прерывание по изменению удобно использовать и для матричной клавиатуры. Заснул, проснулся по прерыванию, задержка в 16мс для борьбы с дребезгом, обработка нажатой кнопки и опять спать.
Так это и есть ОПРОС, милчеловек...
Прерывания не определяют кнопку. Прерывания лишь БУДЯТ контроллер. И все. А если учесть, что реальные задачи требуют не только детектирования нажатий, но и более сложные комбинации с удержанием, двойным нажатием и пр., то универсальный подход с опросом и формированием флагов и машины состояний клавиатуры будет гораздо выгодней для любого проекта.
my504
15.03.2017, 23:21
Цитата Сообщение от SSh
А если энкодер используется именно для измерения угла поворота а не для, например, регулировки громкости?
Вы читаете выборочно или как?
Я же написал, что все зависит от задачи. И энкодер, который дребезжит дольше, чем длительность импульсов на его выходах, для выбранного применения НЕ ПРИГОДЕН. В принципе. А если применять прерывания, то может так статься, что ничем другим МК уже заниматься не будет. Ибо дребезг сожрет все время на бесконечные входы в обработчик...
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
15.03.2017, 23:21
Помогаю со студенческими работами здесь

Опрос матричной клавиатуры
Здравствуйте. Подключил к Pinboard 1.1 (atmega16) матричную мембранную клавиатуру 4х4, к PORTA (PORTA0...3 - выдаем задающий сигнал,...

Метод опроса матричной клавиатуры.
Добрый день. Возник один вопрос. В моем устройстве используется матричная клавиатура. Опрашиваю я её поднимая одну 1 в столбце (остальные...

Опрос матричной клавиатуры 3х3
Всем доброго времени суток. Перелопатил массу примеров на разных сайтах и форумах но так не нашёл конкретного примера для казалось бы очень...

Эквивалентная схема матричной клавиатуры
Здравствуйте. Помогите нарисовать эквивалентную схему для матричной клавиатуры. Голову уже сломал. Регистры КМОП - 74AC11873

Опрос матричной клавиатуры 5*3 с помощью прерывания
Здравствуйте! Начал изучение atmega с матричной клавиатуры и возник затык. На данном этапе хочу сделать, чтобы при нажатии на любую...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
Влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru