Опрос кнопок микроконтроллером
- Starichok51
- Модератор
- Сообщения: 19039
- Зарегистрирован: Сб авг 14, 2010 15:05:51
- Откуда: г. Озерск, Челябинская обл.
Re: Опрос кнопок микроконтроллером
ARV, "понели" - это что и на каком языке?
Мудрость приходит вместе с импотенцией...
Когда на русском форуме переходят на Вы, в реальной жизни начинают бить морду.
Когда на русском форуме переходят на Вы, в реальной жизни начинают бить морду.
Re: Опрос кнопок микроконтроллером
Всё нормально. Это сленг, жаргон.)
Re: Опрос кнопок микроконтроллером
[uquote="OKF",url="/forum/viewtopic.php?p=4665851#p4665851"]Можно и без бабах. Сделал одно, другое, третье, уснул и не проснулся. Где тут цикл?[/uquote]
Одноразовое изделие? Бывает.
Или же в цикл включен мясной человек, который, увидев, что чудо-устройство не подаёт признаков жизни, ткнёт красную кнопочку и перезапустит цикл.
Одноразовое изделие? Бывает.
Или же в цикл включен мясной человек, который, увидев, что чудо-устройство не подаёт признаков жизни, ткнёт красную кнопочку и перезапустит цикл.
- ARV
- Ум, честь и совесть. И скромность.
- Сообщения: 18544
- Зарегистрирован: Чт дек 28, 2006 08:19:56
- Откуда: Новочеркасск
- Контактная информация:
Re: Опрос кнопок микроконтроллером
Вы меня поражаете... Наверное, я не ошибусь, если скажу, что в известной нам части Солнечной системы Земля нет девайсов, в рабочий цикл которых не был бы включен "мясной" человек...
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
Re: Опрос кнопок микроконтроллером
[uquote="ARV",url="/forum/viewtopic.php?p=4665951#p4665951"]невозможно программно заставить человека нажать на кнопку.[/uquote]
вы подвергаете сомнению целую профессиональную область,
вся индустрия интернет рекламы предполагает что таки можно
вы подвергаете сомнению целую профессиональную область,
вся индустрия интернет рекламы предполагает что таки можно
- Just_Fluffy
- Вымогатель припоя
- Сообщения: 532
- Зарегистрирован: Ср июн 29, 2022 16:25:45
Re: Опрос кнопок микроконтроллером
"Нажми на кнопку - получишь результат!
Твоя мечта осуществится!" (ц) Технология
Твоя мечта осуществится!" (ц) Технология
Белая и Пушистая
- ARV
- Ум, честь и совесть. И скромность.
- Сообщения: 18544
- Зарегистрирован: Чт дек 28, 2006 08:19:56
- Откуда: Новочеркасск
- Контактная информация:
Re: Опрос кнопок микроконтроллером
[uquote="AlexS4",url="/forum/viewtopic.php?p=4666739#p4666739"][uquote="ARV",url="/forum/viewtopic.php?p=4665951#p4665951"]невозможно программно заставить человека нажать на кнопку.[/uquote]
вы подвергаете сомнению целую профессиональную область,
вся индустрия интернет рекламы предполагает что таки можно
[/uquote]
Предполагать можно всё, что угодно. Реальность доказывает, что нажимают единицы из тысяч. Процент дебилов никогда не был и не будет равен нулю...
вы подвергаете сомнению целую профессиональную область,
вся индустрия интернет рекламы предполагает что таки можно
Предполагать можно всё, что угодно. Реальность доказывает, что нажимают единицы из тысяч. Процент дебилов никогда не был и не будет равен нулю...
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
Re: Опрос кнопок микроконтроллером
К примеру вылезла хренова рекламна заставка, а убрать ее таки кнопкой надо (или убрать или программу закрыть)...
Вот и таки "заставили кнопку нажать".

Вот и таки "заставили кнопку нажать".
Re: Опрос кнопок микроконтроллером
[uquote="BOB51",url="/forum/viewtopic.php?p=4667758#p4667758"]К примеру вылезла хренова рекламна заставка[/uquote] ... в микроконтроллерном устройстве? Чур меня !

Спойлер
У нас в отдел купили новую микро-ЭВМ (так тогда называлось, это 90-е годы) . Собрали, включили. Вдруг защёлкал Consul (теперь это назвали бы принтер, а тогда - устройство вывода) и выдал: "Ышук доил Аиду". И замолк. Все выпали в осадок. Дело в том, что фамилия одного из инженеров в отделе была Ищук, а Аида - это была марка японского робота, которого пытались клонировать в соседнем КБ.
Последний раз редактировалось Jack_A Вс янв 05, 2025 11:36:12, всего редактировалось 1 раз.
Re: Опрос кнопок микроконтроллером
[uquote="ARV",url="/forum/viewtopic.php?p=4666198#p4666198"]Вы меня поражаете... Наверное, я не ошибусь, если скажу, что в известной нам части Солнечной системы Земля нет девайсов, в рабочий цикл которых не был бы включен "мясной" человек...[/uquote]
Извините, поражать не хотел. Ну а насчёт непременной необходимости мясных человеков для действия - https://ru.wikipedia.org/wiki/%D0%A1%D0 ... 1%80%C2%BB
Извините, поражать не хотел. Ну а насчёт непременной необходимости мясных человеков для действия - https://ru.wikipedia.org/wiki/%D0%A1%D0 ... 1%80%C2%BB
- Just_Fluffy
- Вымогатель припоя
- Сообщения: 532
- Зарегистрирован: Ср июн 29, 2022 16:25:45
Re: Опрос кнопок микроконтроллером
Кожаных же )))Огонёк писал(а):непременной необходимости мясных человеков
Белая и Пушистая
- ARV
- Ум, честь и совесть. И скромность.
- Сообщения: 18544
- Зарегистрирован: Чт дек 28, 2006 08:19:56
- Откуда: Новочеркасск
- Контактная информация:
Re: Опрос кнопок микроконтроллером
[uquote="Огонёк",url="/forum/viewtopic.php?p=4667876#p4667876"][uquote="ARV",url="/forum/viewtopic.php?p=4666198#p4666198"]Вы меня поражаете... Наверное, я не ошибусь, если скажу, что в известной нам части Солнечной системы Земля нет девайсов, в рабочий цикл которых не был бы включен "мясной" человек...[/uquote]
Извините, поражать не хотел. Ну а насчёт непременной необходимости мясных человеков для действия - https://ru.wikipedia.org/wiki/%D0%A1%D0 ... 1%80%C2%BB[/uquote]вот еще сказок тут не хватало... Википедия и без того тот еще источник, так ещё и каждое второе слово "предположительно"
Извините, поражать не хотел. Ну а насчёт непременной необходимости мясных человеков для действия - https://ru.wikipedia.org/wiki/%D0%A1%D0 ... 1%80%C2%BB[/uquote]вот еще сказок тут не хватало... Википедия и без того тот еще источник, так ещё и каждое второе слово "предположительно"
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
Re: Опрос кнопок микроконтроллером
[uquote="Just_Fluffy",url="/forum/viewtopic.php?p=4667901#p4667901"]Кожаных же )))[/uquote]
"...хотел пробить сильно и точно, да неудачно лёг на ногу его кожаный дружок". Футбол, вспомнилось.))
"...хотел пробить сильно и точно, да неудачно лёг на ногу его кожаный дружок". Футбол, вспомнилось.))
- Just_Fluffy
- Вымогатель припоя
- Сообщения: 532
- Зарегистрирован: Ср июн 29, 2022 16:25:45
Re: Опрос кнопок микроконтроллером
OKF, ну мне больше вспомнилась озвучка от лица роботов из бостон дайнемикс - "...кожаные ублюдки..."
Белая и Пушистая
Re: Опрос кнопок микроконтроллером
Теперь по теме.)
Код: Выделить всё
// Кнопки без дребезга
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;
}
- Just_Fluffy
- Вымогатель припоя
- Сообщения: 532
- Зарегистрирован: Ср июн 29, 2022 16:25:45
Re: Опрос кнопок микроконтроллером
OKF, т.е. для каждой кнопки в памяти надо держать три байтовых переменных? И тогда для каждой кнопки нужно в keyTick передавать указатель на эти три байта плюс физическое состояние кнопки...
Тогда мой вариант с "гистерезисным" счетчиком экономичнее - один байт на кнопку.
Тут ранее упоминался т.н. вертикальный счетчик - хорош, когда 8 кнопок легко мапятся в один байт. Тогда 3 байта хватает для 8 кнопок.
Тогда мой вариант с "гистерезисным" счетчиком экономичнее - один байт на кнопку.
Тут ранее упоминался т.н. вертикальный счетчик - хорош, когда 8 кнопок легко мапятся в один байт. Тогда 3 байта хватает для 8 кнопок.
Белая и Пушистая
Re: Опрос кнопок микроконтроллером
Всё зависит от того, какой функционал той кнопке в программе задавать нужно.
Служебных флагов и прочего может быть и побольше.

Служебных флагов и прочего может быть и побольше.
Re: Опрос кнопок микроконтроллером
[uquote="Just_Fluffy",url="/forum/viewtopic.php?p=4668178#p4668178"]т.е. для каждой кнопки в памяти надо держать три байтовых переменных?[/uquote]
Если get_key() возвращает состояние 8-ми кнопок, то и работать будет для 8-ми кнопок.
Если get_key() возвращает состояние 8-ми кнопок, то и работать будет для 8-ми кнопок.
С удовольствием послушаю как при помощи 2-х или 3-х битного вертикального счетчика считающего строго до 4-х или 8-ми задать пороговое значение в 30ms для короткого нажатия, 150ms для автоповтора и 700ms для длинного нажатия )Just_Fluffy писал(а):Тогда мой вариант с "гистерезисным" счетчиком экономичнее - один байт на кнопку.
Тут ранее упоминался т.н. вертикальный счетчик - хорош, когда 8 кнопок легко мапятся в один байт. Тогда 3 байта хватает для 8 кнопок.
- Just_Fluffy
- Вымогатель припоя
- Сообщения: 532
- Зарегистрирован: Ср июн 29, 2022 16:25:45
Re: Опрос кнопок микроконтроллером
там как минимум timer должен быть индивидуален для каждой кнопки. И длинное/короткое нажатие в коде OKF тоже не предусмотрено, так что не передергивайте.Adrift писал(а):Если get_key() возвращает состояние 8-ми кнопок, то и работать будет для 8-ми кнопок.
Опять же, вырвано из контекста.Adrift писал(а):С удовольствием послушаю как при помощи 2-х или 3-х битного вертикального счетчика считающего строго до 4-х или 8-ми задать пороговое значение в 30ms для короткого нажатия, 150ms для автоповтора и 700ms для длинного нажатия )
Я всего лишь говорила про экономию памяти. А как автоповтор будет реализовывать автор вертикальных счетчиков - вопрос алгоритма)))
А вообще - все зависит от алгоритма. Мне хватает 2 байт на кнопку на короткое/длинное нажатие/автоповтор/пауза перед автоповтором.
Белая и Пушистая
- ARV
- Ум, честь и совесть. И скромность.
- Сообщения: 18544
- Зарегистрирован: Чт дек 28, 2006 08:19:56
- Откуда: Новочеркасск
- Контактная информация:
Re: Опрос кнопок микроконтроллером
Итак, дребезг гасим тем, что опрос ведем периодически с периодом дольше дребезга, допустим, 30 мс.
get_key возвращает результат опроса сразу 8 кнопок
Далее, делаем функцию get_event, которая берет get_key и при помощи единственного счетчика отслеживает: нажатие, отпускание и промежуток между ними.
Таким образом, имеем минимум накладных расходов и работаем с событиями: ИЗМЕНИЛОСЬ_СОСТОЯНИЕ_КНОПОК и СОСТОЯНИЕ_НЕ_МЕНЯЕТСЯ_ДОЛГО.
То есть отслеживаем и долгое удержание кнопки, и короткое.
Раз и навсегда такое написали, и горя больше не знаем. Опрос можно повесить на любой таймер, который всё равно наверняка будет в любом проекте. И тему можно закрывать
Добавлено after 7 minutes 47 seconds:
Дополнение: get_key может возвращать до 255 кнопок, но в этом случае комбинации одновременно нажатых кнопок могут быть недоступны.
Я больше вариантов навешиваю на get_event, формируя там из комбинаций готовые события. Тогда в разных проектах почти всё одинаково делается, только события могут быть разные. И туда, кстати, очень хорошо вписываются события от энкодера, команды из USART, прерываний и т.п., вся обработка однотипная выходит
get_key возвращает результат опроса сразу 8 кнопок
Далее, делаем функцию get_event, которая берет get_key и при помощи единственного счетчика отслеживает: нажатие, отпускание и промежуток между ними.
Таким образом, имеем минимум накладных расходов и работаем с событиями: ИЗМЕНИЛОСЬ_СОСТОЯНИЕ_КНОПОК и СОСТОЯНИЕ_НЕ_МЕНЯЕТСЯ_ДОЛГО.
То есть отслеживаем и долгое удержание кнопки, и короткое.
Раз и навсегда такое написали, и горя больше не знаем. Опрос можно повесить на любой таймер, который всё равно наверняка будет в любом проекте. И тему можно закрывать
Добавлено after 7 minutes 47 seconds:
Дополнение: get_key может возвращать до 255 кнопок, но в этом случае комбинации одновременно нажатых кнопок могут быть недоступны.
Я больше вариантов навешиваю на get_event, формируя там из комбинаций готовые события. Тогда в разных проектах почти всё одинаково делается, только события могут быть разные. И туда, кстати, очень хорошо вписываются события от энкодера, команды из USART, прерываний и т.п., вся обработка однотипная выходит
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
