Форум программистов, компьютерный форум, киберфорум
Микроконтроллеры ARM, Cortex, STM32
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.87/23: Рейтинг темы: голосов - 23, средняя оценка - 4.87
0 / 0 / 0
Регистрация: 24.11.2013
Сообщений: 195

hardware опрос кнопки.

04.04.2017, 12:40. Показов 4750. Ответов 17
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Интересует есть ли железный опрос кнопки.
Как энкодер самим процом обрабатывается.

Хочу подключить 2 кнопки и что бы они 1 ячейку сами прибавляли и вычитали.
Есть что нибудь подобное?

проц stm32f1 или f4
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
04.04.2017, 12:40
Ответы с готовыми решениями:

Простой опрос кнопки, но не работает
#define F_CPU 8000000L #include <avr/io.h> #include <util/delay.h> #include <stdio.h> #include <avr/interrupt.h> int...

Опрос кнопки и запись в EEPROM (Си, PIC16F887)
Здравствуйте, написал программу по которой выполняются следующие действия: при включении выбираем одну из двух кнопок и бесконечно...

Опрос порта на нажатие кнопки (ASM, ATMega16)
Не могу разобраться в чем дело, в моем проекте порт РС настроен как приемник к каждой ножке будет подключена кнопка при нажатии которой...

17
0 / 0 / 0
Регистрация: 06.12.2016
Сообщений: 3,113
04.04.2017, 12:51
Сделайте эмулятор "энкодера" на 2х кнопках, будет вам "железный" счетчик.
0
1 / 1 / 0
Регистрация: 05.10.2017
Сообщений: 2,048
04.04.2017, 14:11
Можно зацепить на вход тактирования таймера. Только как будете с антидребезгом бороться? Аппаратная обработка есть, вот только период там совсем мал. К чему такая задача? Если на кнопку жмет человек, то там паузы в 20-30мс вполне допустимы и незаметны и простой опрос вполне успешно обрабатывает нажатия.
0
0 / 0 / 0
Регистрация: 06.02.2013
Сообщений: 333
04.04.2017, 18:31
Чета ТЗ кривое. Кнопки это кнопки, энкодер это энкодер. Хотя формально энкодер и есть две кнопки, но вкл, выкл у него в определенной последовательности.
Делаем выбор - энкодер или кнопки?
0
0 / 0 / 0
Регистрация: 24.11.2013
Сообщений: 195
04.04.2017, 21:11
Цитата Сообщение от Tistir500
Чета ТЗ кривое. Кнопки это кнопки, энкодер это энкодер. Хотя формально энкодер и есть две кнопки, но вкл, выкл у него в определенной последовательности.
Делаем выбор - энкодер или кнопки?
Хочу подключить 2 кнопки и что бы они 1 ячейку сами прибавляли и вычитали.
(энкодер я привел в качестве примера - процессор его сам обрабатывает, я хочу что бы так же обрабатывались 2 кнопки. Без моего участия)
0
0 / 0 / 0
Регистрация: 24.11.2013
Сообщений: 195
04.04.2017, 21:13
Цитата Сообщение от Hotd
Можно зацепить на вход тактирования таймера. Только как будете с антидребезгом бороться? Аппаратная обработка есть, вот только период там совсем мал. К чему такая задача? Если на кнопку жмет человек, то там паузы в 20-30мс вполне допустимы и незаметны и простой опрос вполне успешно обрабатывает нажатия.
Здоровенным конденсатором ?

А разве можно 2 входа тактирования сделать для таймера ? чтобы 1 вычитал, а 2 прибавлял ?
0
0 / 0 / 0
Регистрация: 06.12.2016
Сообщений: 3,113
04.04.2017, 21:48
В режиме энкодера - да.
0
1 / 1 / 0
Регистрация: 06.12.2016
Сообщений: 3,946
04.04.2017, 23:07
ТС, опишите саму проблему а не ваше представление реализации...
0
0 / 0 / 0
Регистрация: 24.11.2013
Сообщений: 195
05.04.2017, 12:16
Проблемы нет. Просто хочется что бы 2 кнопки обрабатывались сами.
0
0 / 0 / 0
Регистрация: 20.07.2012
Сообщений: 620
05.04.2017, 15:19
Что значит "сами"?

С кнопками есть проблема, именуемая дребезг контактов. С ним так или иначе надо бороться или програмно внутри контроллера или "железно" на плате. Из-за дребезга нельзя просто-напросто завести ваши кнопки на счетчики. То есть, увы, но ответ отрицательный. Нужно реализовывать обработку в каком-либо ее виде.
0
0 / 0 / 0
Регистрация: 24.11.2013
Сообщений: 195
05.04.2017, 21:23
Цитата Сообщение от Myrmyk
Что значит "сами"?
Значит так же как это происходит при обработке энкодера.
У таймера есть антидребезговый фильтр. Он и задействован в обработке энкодера.
0
0 / 0 / 0
Регистрация: 28.07.2016
Сообщений: 173
05.04.2017, 21:57
Цитата Сообщение от r0skit
Цитата Сообщение от Myrmyk
Что значит "сами"?
Значит так же как это происходит при обработке энкодера.
У таймера есть антидребезговый фильтр. Он и задействован в обработке энкодера.

этого фильтра не хватает на борьбу с дребезгом кнопок. проверено, он скорее с единичными выбросами борется. Об этом если память не изменяет написано в РМ.

ИМХО, Не вижу проблемы добавить обработку нажатия кнопки размером в пару строк кода, даже с использованием того же таймера. Заодно можно и длительные нажатия от коротких отличать
0
Oxford
06.04.2017, 07:46
Под ОС это решается выделением задачи. Одной процедуркой, при этом программная фильтрация настраивается как душе угодно.
0 / 0 / 0
Регистрация: 24.11.2013
Сообщений: 195
06.04.2017, 11:10
Цитата Сообщение от ShiMox
Цитата Сообщение от r0skit
Цитата Сообщение от Myrmyk
Что значит "сами"?
Значит так же как это происходит при обработке энкодера.
У таймера есть антидребезговый фильтр. Он и задействован в обработке энкодера.
этого фильтра не хватает на борьбу с дребезгом кнопок. проверено, он скорее с единичными выбросами борется. Об этом если память не изменяет написано в РМ.

ИМХО, Не вижу проблемы добавить обработку нажатия кнопки размером в пару строк кода, даже с использованием того же таймера. Заодно можно и длительные нажатия от коротких отличать

https://hubstub.ru/stm32/68-kak-podklyu ... stm32.html (не реклама) в статье описано про входной антидребезговый настраиваемый фильтр

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

По теме - понятно что такой метод работы с кнопками невозможен.
Всем спасибо.
0
1 / 1 / 0
Регистрация: 05.10.2017
Сообщений: 2,048
06.04.2017, 11:27
Ага, только посчитайте длительность такого антидребезга на максимальной длительности. Возможно я где-то ошибся в расчетах, одна у меня вышла максимальная длительность 28мкс . Толку от такого антидребезга нет.
0
0 / 0 / 0
Регистрация: 24.11.2013
Сообщений: 195
06.04.2017, 14:46
Тогда как же работает энкодер с таким маленьким антидребезгом ?
0
1 / 1 / 0
Регистрация: 05.10.2017
Сообщений: 2,048
06.04.2017, 15:13
Обычный механический херово работает. Следует понимать, что эти входные фильтры не только для обработки энкодера, но и для других режимов таймера, где они возможно необходимы. У себя энкодер сделал на обычном опросе.
0
0 / 0 / 0
Регистрация: 20.07.2012
Сообщений: 620
06.04.2017, 15:39
Давайте вернемся немного назад.
Энкодер это немного не кнопки.

Квадратурная модуляция по своей природе более устойчива к дребезгу, потому что пока одна ножка дребезжит, вторая стабильна. А подобное поведение трактуется алгоритмом квадратурной модуляции как вперёд-назад-вперёд-назад Следовательно дребезг будет сдвигать модель плюс-минус на один импульс. То есть при квадратурной модуляции дребезг в принципе допустим.

А с кнопками другая история. Они независимы. Дребезг на одной из них вызовет сотни переключений, в то время как дребезг при квадратурной модуляции вызывает колебания в один импульс.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
06.04.2017, 15:39
Помогаю со студенческими работами здесь

Опрос клавиатуры 3х4 и вывод нажатой кнопки AT90S8515
Написана программа на С, для такой вот схемы писал честно говоря не я, но для этой схемы. Суть работы проги очень прост: нажимается...

Servise и Hardware кнопки
Здравствуйте...) Мне нужно прослушать Hardware кнопки у потоке.... я выбрал Servise, как прослушэвать кнопки я знаю и как работать с...

Опрос нажатия кнопки в стороннем приложении
Добрый день, пишу на VS2017 код, который должен выдать реакцию при клике мышкой на цифре "9" калькулятора. Экспериментальным...

Цикл for блокирует опрос кнопки. Как выйти посреди цикла при нажатии на кнопку?
Всем привет! Пытаюсь сделать программку для управления скоростью электромотора, где при нажатии на первую кнопку он будет включаться, при...

Hardware upgrade
Я правильно понимаю, что если предстоит замена железа в системнике, нужно в общем случае сделать образ системы, поменять железяки, а потом...


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

Или воспользуйтесь поиском по форуму:
18
Ответ Создать тему
Новые блоги и статьи
Переходник USB-CAN-GPIO
Eddy_Em 20.03.2026
Достаточно давно на работе возникла необходимость в переходнике CAN-USB с гальваноразвязкой, оный и был разработан. Однако, все меня терзала совесть, что аж 48-ногий МК используется так тупо: просто. . .
Оттенки серого
Argus19 18.03.2026
Оттенки серого Нашёл в интернете 3 прекрасных модуля: Модуль класса открытия диалога открытия/ сохранения файла на Win32 API; Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru