Например TDA7294

Форум РадиоКот • Просмотр темы - Опрос кнопок микроконтроллером
Форум РадиоКот
Здесь можно немножко помяукать :)

Текущее время: Чт авг 28, 2025 23:37:23

Часовой пояс: UTC + 3 часа


ПРЯМО СЕЙЧАС:



Начать новую тему Ответить на тему  [ Сообщений: 509 ]     ... , , , 19, , , ...  
Автор Сообщение
Не в сети
 Заголовок сообщения: Re: Опрос кнопок микроконтроллером
СообщениеДобавлено: Пн дек 30, 2024 10:49:48 
Модератор
Аватар пользователя

Карма: 153
Рейтинг сообщений: 2922
Зарегистрирован: Сб авг 14, 2010 15:05:51
Сообщений: 18782
Откуда: г. Озерск, Челябинская обл.
Рейтинг сообщения: 0
Медали: 1
Лучший человек Форума 2017 (1)
ARV, "понели" - это что и на каком языке?

_________________
Мудрость приходит вместе с импотенцией...
Когда на русском форуме переходят на Вы, в реальной жизни начинают бить морду.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Опрос кнопок микроконтроллером
СообщениеДобавлено: Пн дек 30, 2024 11:07:06 
Сверлит текстолит когтями

Карма: 12
Рейтинг сообщений: 126
Зарегистрирован: Вт июн 07, 2011 08:03:18
Сообщений: 1237
Рейтинг сообщения: 0
Всё нормально. Это сленг, жаргон.)


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Опрос кнопок микроконтроллером
СообщениеДобавлено: Пн дек 30, 2024 17:09:22 
Опытный кот
Аватар пользователя

Карма: -8
Рейтинг сообщений: 63
Зарегистрирован: Вт авг 27, 2024 19:11:47
Сообщений: 746
Рейтинг сообщения: 0
Можно и без бабах. Сделал одно, другое, третье, уснул и не проснулся. Где тут цикл?

Одноразовое изделие? Бывает.
Или же в цикл включен мясной человек, который, увидев, что чудо-устройство не подаёт признаков жизни, ткнёт красную кнопочку и перезапустит цикл.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Опрос кнопок микроконтроллером
СообщениеДобавлено: Пн дек 30, 2024 21:40:34 
Ум, честь и совесть. И скромность.
Аватар пользователя

Карма: 98
Рейтинг сообщений: 2117
Зарегистрирован: Чт дек 28, 2006 08:19:56
Сообщений: 18405
Откуда: Новочеркасск
Рейтинг сообщения: 0
Медали: 2
Получил миской по аватаре (1) Мявтор 3-й степени (1)
Вы меня поражаете... Наверное, я не ошибусь, если скажу, что в известной нам части Солнечной системы Земля нет девайсов, в рабочий цикл которых не был бы включен "мясной" человек...

_________________
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Опрос кнопок микроконтроллером
СообщениеДобавлено: Ср янв 01, 2025 13:49:13 
Друг Кота

Карма: 31
Рейтинг сообщений: 821
Зарегистрирован: Пт сен 10, 2021 15:19:36
Сообщений: 5649
Откуда: Протвино
Рейтинг сообщения: 0
невозможно программно заставить человека нажать на кнопку.

вы подвергаете сомнению целую профессиональную область, :tea:
вся индустрия интернет рекламы предполагает что таки можно :)


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Опрос кнопок микроконтроллером
СообщениеДобавлено: Ср янв 01, 2025 13:58:31 
Вымогатель припоя
Аватар пользователя

Карма: 10
Рейтинг сообщений: 166
Зарегистрирован: Ср июн 29, 2022 16:25:45
Сообщений: 503
Рейтинг сообщения: 0
"Нажми на кнопку - получишь результат!
Твоя мечта осуществится!" (ц) Технология

_________________
Белая и Пушистая


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Опрос кнопок микроконтроллером
СообщениеДобавлено: Ср янв 01, 2025 14:15:09 
Ум, честь и совесть. И скромность.
Аватар пользователя

Карма: 98
Рейтинг сообщений: 2117
Зарегистрирован: Чт дек 28, 2006 08:19:56
Сообщений: 18405
Откуда: Новочеркасск
Рейтинг сообщения: 0
Медали: 2
Получил миской по аватаре (1) Мявтор 3-й степени (1)
невозможно программно заставить человека нажать на кнопку.

вы подвергаете сомнению целую профессиональную область, :tea:
вся индустрия интернет рекламы предполагает что таки можно :)

Предполагать можно всё, что угодно. Реальность доказывает, что нажимают единицы из тысяч. Процент дебилов никогда не был и не будет равен нулю...

_________________
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Опрос кнопок микроконтроллером
СообщениеДобавлено: Сб янв 04, 2025 18:38:17 
Друг Кота
Аватар пользователя

Карма: 96
Рейтинг сообщений: 1472
Зарегистрирован: Вт мар 16, 2010 22:02:27
Сообщений: 15141
Откуда: ДОНЕЦК
Рейтинг сообщения: 0
К примеру вылезла хренова рекламна заставка, а убрать ее таки кнопкой надо (или убрать или программу закрыть)...
Вот и таки "заставили кнопку нажать".
:twisted:


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Опрос кнопок микроконтроллером
СообщениеДобавлено: Сб янв 04, 2025 21:30:41 
Друг Кота
Аватар пользователя

Карма: 62
Рейтинг сообщений: 884
Зарегистрирован: Вт апр 24, 2007 07:45:40
Сообщений: 6083
Откуда: Minsk
Рейтинг сообщения: 0
К примеру вылезла хренова рекламна заставка
... в микроконтроллерном устройстве? Чур меня ! :shock:
СпойлерУ нас в отдел купили новую микро-ЭВМ (так тогда называлось, это 90-е годы) . Собрали, включили. Вдруг защёлкал Consul (теперь это назвали бы принтер, а тогда - устройство вывода) и выдал: "Ышук доил Аиду". И замолк. Все выпали в осадок. Дело в том, что фамилия одного из инженеров в отделе была Ищук, а Аида - это была марка японского робота, которого пытались клонировать в соседнем КБ. :) :?

_________________
Изображение


Последний раз редактировалось Jack_A Вс янв 05, 2025 11:36:12, всего редактировалось 1 раз.

Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Опрос кнопок микроконтроллером
СообщениеДобавлено: Сб янв 04, 2025 23:08:27 
Опытный кот
Аватар пользователя

Карма: -8
Рейтинг сообщений: 63
Зарегистрирован: Вт авг 27, 2024 19:11:47
Сообщений: 746
Рейтинг сообщения: 0
Вы меня поражаете... Наверное, я не ошибусь, если скажу, что в известной нам части Солнечной системы Земля нет девайсов, в рабочий цикл которых не был бы включен "мясной" человек...

Извините, поражать не хотел. Ну а насчёт непременной необходимости мясных человеков для действия - https://ru.wikipedia.org/wiki/%D0%A1%D0 ... 1%80%C2%BB


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Опрос кнопок микроконтроллером
СообщениеДобавлено: Вс янв 05, 2025 01:31:29 
Вымогатель припоя
Аватар пользователя

Карма: 10
Рейтинг сообщений: 166
Зарегистрирован: Ср июн 29, 2022 16:25:45
Сообщений: 503
Рейтинг сообщения: 0
Огонёк писал(а):
непременной необходимости мясных человеков
Кожаных же )))

_________________
Белая и Пушистая


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Опрос кнопок микроконтроллером
СообщениеДобавлено: Вс янв 05, 2025 13:08:24 
Ум, честь и совесть. И скромность.
Аватар пользователя

Карма: 98
Рейтинг сообщений: 2117
Зарегистрирован: Чт дек 28, 2006 08:19:56
Сообщений: 18405
Откуда: Новочеркасск
Рейтинг сообщения: 0
Медали: 2
Получил миской по аватаре (1) Мявтор 3-й степени (1)
Вы меня поражаете... Наверное, я не ошибусь, если скажу, что в известной нам части Солнечной системы Земля нет девайсов, в рабочий цикл которых не был бы включен "мясной" человек...

Извините, поражать не хотел. Ну а насчёт непременной необходимости мясных человеков для действия - https://ru.wikipedia.org/wiki/%D0%A1%D0 ... 1%80%C2%BB
вот еще сказок тут не хватало... Википедия и без того тот еще источник, так ещё и каждое второе слово "предположительно" :)))

_________________
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Опрос кнопок микроконтроллером
СообщениеДобавлено: Вс янв 05, 2025 14:45:46 
Сверлит текстолит когтями

Карма: 12
Рейтинг сообщений: 126
Зарегистрирован: Вт июн 07, 2011 08:03:18
Сообщений: 1237
Рейтинг сообщения: 0
Кожаных же )))

"...хотел пробить сильно и точно, да неудачно лёг на ногу его кожаный дружок". Футбол, вспомнилось.))


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Опрос кнопок микроконтроллером
СообщениеДобавлено: Вс янв 05, 2025 17:00:55 
Вымогатель припоя
Аватар пользователя

Карма: 10
Рейтинг сообщений: 166
Зарегистрирован: Ср июн 29, 2022 16:25:45
Сообщений: 503
Рейтинг сообщения: 0
OKF, ну мне больше вспомнилась озвучка от лица роботов из бостон дайнемикс - "...кожаные ублюдки..."

_________________
Белая и Пушистая


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Опрос кнопок микроконтроллером
СообщениеДобавлено: Вс янв 05, 2025 18:08:37 
Сверлит текстолит когтями

Карма: 12
Рейтинг сообщений: 126
Зарегистрирован: Вт июн 07, 2011 08:03:18
Сообщений: 1237
Рейтинг сообщения: 0
Теперь по теме.)
Код:
// Кнопки без дребезга
uint8_t keyTick() {
  static uint8_t timer;
  static uint8_t old;
  static uint8_t valid;

  uint8_t key = get_key();
  if (old != key) {                     //change
    old = key;
    timer = DEBOUNCE_TIME;
  }
  else if (timer && !--timer && valid != key)
    valid = key;
  return valid;
}


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Опрос кнопок микроконтроллером
СообщениеДобавлено: Вс янв 05, 2025 20:44:27 
Вымогатель припоя
Аватар пользователя

Карма: 10
Рейтинг сообщений: 166
Зарегистрирован: Ср июн 29, 2022 16:25:45
Сообщений: 503
Рейтинг сообщения: 0
OKF, т.е. для каждой кнопки в памяти надо держать три байтовых переменных? И тогда для каждой кнопки нужно в keyTick передавать указатель на эти три байта плюс физическое состояние кнопки...
Тогда мой вариант с "гистерезисным" счетчиком экономичнее - один байт на кнопку.
Тут ранее упоминался т.н. вертикальный счетчик - хорош, когда 8 кнопок легко мапятся в один байт. Тогда 3 байта хватает для 8 кнопок.

_________________
Белая и Пушистая


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Опрос кнопок микроконтроллером
СообщениеДобавлено: Вс янв 05, 2025 21:56:26 
Друг Кота
Аватар пользователя

Карма: 96
Рейтинг сообщений: 1472
Зарегистрирован: Вт мар 16, 2010 22:02:27
Сообщений: 15141
Откуда: ДОНЕЦК
Рейтинг сообщения: 2
Всё зависит от того, какой функционал той кнопке в программе задавать нужно.
Служебных флагов и прочего может быть и побольше.
8)


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Опрос кнопок микроконтроллером
СообщениеДобавлено: Пн янв 06, 2025 00:13:26 
Мучитель микросхем

Карма: 1
Рейтинг сообщений: 43
Зарегистрирован: Вт окт 01, 2024 15:22:33
Сообщений: 439
Рейтинг сообщения: 2
т.е. для каждой кнопки в памяти надо держать три байтовых переменных?

Если get_key() возвращает состояние 8-ми кнопок, то и работать будет для 8-ми кнопок.

Just_Fluffy писал(а):
Тогда мой вариант с "гистерезисным" счетчиком экономичнее - один байт на кнопку.
Тут ранее упоминался т.н. вертикальный счетчик - хорош, когда 8 кнопок легко мапятся в один байт. Тогда 3 байта хватает для 8 кнопок.

С удовольствием послушаю как при помощи 2-х или 3-х битного вертикального счетчика считающего строго до 4-х или 8-ми задать пороговое значение в 30ms для короткого нажатия, 150ms для автоповтора и 700ms для длинного нажатия )


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Опрос кнопок микроконтроллером
СообщениеДобавлено: Пн янв 06, 2025 11:13:41 
Вымогатель припоя
Аватар пользователя

Карма: 10
Рейтинг сообщений: 166
Зарегистрирован: Ср июн 29, 2022 16:25:45
Сообщений: 503
Рейтинг сообщения: 0
Adrift писал(а):
Если get_key() возвращает состояние 8-ми кнопок, то и работать будет для 8-ми кнопок.
там как минимум timer должен быть индивидуален для каждой кнопки. И длинное/короткое нажатие в коде OKF тоже не предусмотрено, так что не передергивайте.

Adrift писал(а):
С удовольствием послушаю как при помощи 2-х или 3-х битного вертикального счетчика считающего строго до 4-х или 8-ми задать пороговое значение в 30ms для короткого нажатия, 150ms для автоповтора и 700ms для длинного нажатия )
Опять же, вырвано из контекста.
Я всего лишь говорила про экономию памяти. А как автоповтор будет реализовывать автор вертикальных счетчиков - вопрос алгоритма)))

А вообще - все зависит от алгоритма. Мне хватает 2 байт на кнопку на короткое/длинное нажатие/автоповтор/пауза перед автоповтором.

_________________
Белая и Пушистая


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Опрос кнопок микроконтроллером
СообщениеДобавлено: Пн янв 06, 2025 11:41:31 
Ум, честь и совесть. И скромность.
Аватар пользователя

Карма: 98
Рейтинг сообщений: 2117
Зарегистрирован: Чт дек 28, 2006 08:19:56
Сообщений: 18405
Откуда: Новочеркасск
Рейтинг сообщения: 0
Медали: 2
Получил миской по аватаре (1) Мявтор 3-й степени (1)
Итак, дребезг гасим тем, что опрос ведем периодически с периодом дольше дребезга, допустим, 30 мс.
get_key возвращает результат опроса сразу 8 кнопок

Далее, делаем функцию get_event, которая берет get_key и при помощи единственного счетчика отслеживает: нажатие, отпускание и промежуток между ними.

Таким образом, имеем минимум накладных расходов и работаем с событиями: ИЗМЕНИЛОСЬ_СОСТОЯНИЕ_КНОПОК и СОСТОЯНИЕ_НЕ_МЕНЯЕТСЯ_ДОЛГО.
То есть отслеживаем и долгое удержание кнопки, и короткое.

Раз и навсегда такое написали, и горя больше не знаем. Опрос можно повесить на любой таймер, который всё равно наверняка будет в любом проекте. И тему можно закрывать :)))

Добавлено after 7 minutes 47 seconds:
Дополнение: get_key может возвращать до 255 кнопок, но в этом случае комбинации одновременно нажатых кнопок могут быть недоступны.

Я больше вариантов навешиваю на get_event, формируя там из комбинаций готовые события. Тогда в разных проектах почти всё одинаково делается, только события могут быть разные. И туда, кстати, очень хорошо вписываются события от энкодера, команды из USART, прерываний и т.п., вся обработка однотипная выходит

_________________
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!


Вернуться наверх
 
Показать сообщения за:  Сортировать по:  Вернуться наверх
Начать новую тему Ответить на тему  [ Сообщений: 509 ]     ... , , , 19, , , ...  

Часовой пояс: UTC + 3 часа


Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 6


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
Extended by Karma MOD © 2007—2012 m157y
Extended by Topic Tags MOD © 2012 m157y