Реклама на сайте English version  DatasheetsDatasheets

KAZUS.RU - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Новости электроники Новости Литература, электронные книги Литература Документация, даташиты Документация Поиск даташитов (datasheets)Поиск PDF
  От производителей
Новости поставщиков
В мире электроники

  Сборник статей
Электронные книги
FAQ по электронике

  Datasheets
Поиск SMD
Он-лайн справочник

Принципиальные схемы Схемы Каталоги программ, сайтов Каталоги Общение, форум Общение Ваш аккаунтАккаунт
  Каталог схем
Избранные схемы
FAQ по электронике
  Программы
Каталог сайтов
Производители электроники
  Форумы по электронике
Помощь проекту

Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей...

Закрытая тема
Опции темы
Непрочитано 20.03.2013, 14:04   #31
nml
Супер-модератор
 
Аватар для nml
 
Регистрация: 13.03.2004
Адрес: Minsk
Сообщений: 2,378
Сказал спасибо: 1,961
Сказали Спасибо 1,328 раз(а) в 578 сообщении(ях)
nml на пути к лучшему
По умолчанию Re: Опрос кнопки/клавиатуры

Сообщение от tempora Посмотреть сообщение
То есть, если пользователь нажал "Тише", а программа считала и выполнила "Громче" - то "и хрен с ним"? Не самое удачное решение...
Такого не будет, если для каждой кнопки запоминать "предыдущее" состояние. Тогда пофигу, поймали мы уверенное нажатие или дребезг. А к следующему "тику" все уже устаканится.
Реклама:
__________________
[ жизнь приятна и красива, если выпить литр пива ]
nml вне форума  
Непрочитано 20.03.2013, 14:05   #32
Frensis777
Прописка
 
Аватар для Frensis777
 
Регистрация: 15.03.2009
Сообщений: 162
Сказал спасибо: 1
Сказали Спасибо 3 раз(а) в 3 сообщении(ях)
Frensis777 на пути к лучшему
По умолчанию Re: Опрос кнопки/клавиатуры

Сообщение от Easyrider83 Посмотреть сообщение
tempora, это все очень хорошо и правильно. Просто чужие коды лопатить утомительно. Важно ведь идея, а не сотня чужих процедур сомнительного происхождения.
Сообщение от tempora Посмотреть сообщение
В некоторых случаях выбор настолько небогат, что лучше-таки "лопатить".
Сообщение от baiderin Посмотреть сообщение
Так пусть и лопатит,кому насоветовали. Главное-напредлагать вариантов,чтобы выбирать или обдумать было что.
Ну тише-тише, товарищи! Не надо перебивать друг друга. Все нормально, все хорошо. Всем спасибо за предложения, мнения. Ведь главное, товарищи, плюрализм мнений, кто как считает, так сказать, пусть выскажется, а коллектив рассудит. У каждого свой подход для опроса кнопок. И я с радостью Вас выслушал, ознакомился с точками зрения специалистов, так сказать...Я Вам очень признателен за это...
Frensis777 вне форума  
Непрочитано 20.03.2013, 14:27   #33
tempora
Почётный гражданин KAZUS.RU
 
Регистрация: 10.01.2007
Сообщений: 3,412
Сказал спасибо: 65
Сказали Спасибо 664 раз(а) в 443 сообщении(ях)
tempora на пути к лучшему
По умолчанию Re: Опрос кнопки/клавиатуры

Сообщение от nml Посмотреть сообщение
Такого не будет, если ...
Слово "если" может очень многое за собой содержать, но его не было.
__________________
There's always more than one way to skin a cat.
tempora вне форума  
Непрочитано 20.03.2013, 14:46   #34
Boba_spb
Почётный гражданин KAZUS.RU
 
Регистрация: 08.06.2008
Сообщений: 1,394
Сказал спасибо: 4
Сказали Спасибо 183 раз(а) в 167 сообщении(ях)
Boba_spb на пути к лучшему
По умолчанию Re: Опрос кнопки/клавиатуры

Бывает алгоритм для кнопки, переносят на "сухой контакт" от релюхи, ну и уж, наконец, на дискретный ввод через опторон.

И вот наступает тот момент .... оптрон начинает "звенеть".
И вот тут то примитивная "борьба с дребезгом" кнопки доставляет доставляет кучу.
Boba_spb вне форума  
Непрочитано 20.03.2013, 15:10   #35
Vadim_sh
Вид на жительство
 
Регистрация: 29.01.2010
Адрес: Десногорск Смол.обл.
Сообщений: 333
Сказал спасибо: 17
Сказали Спасибо 256 раз(а) в 103 сообщении(ях)
Vadim_sh на пути к лучшему
По умолчанию Re: Опрос кнопки/клавиатуры

опрос кнопки должен быть четким )))
Vadim_sh вне форума  
Непрочитано 20.03.2013, 16:07   #36
omercury
Почётный гражданин KAZUS.RU
 
Аватар для omercury
 
Регистрация: 25.05.2010
Адрес: г. Королёв
Сообщений: 8,497
Сказал спасибо: 30
Сказали Спасибо 3,072 раз(а) в 2,013 сообщении(ях)
omercury на пути к лучшему
По умолчанию Re: Опрос кнопки/клавиатуры

Сообщение от Yurkin2007 Посмотреть сообщение
Вот вы говорите "дребезг-антидребезг"... Запускаете счётчики после первого непустого чтения клавы. И когда счётчик достигнет какого-то значения, принимаете решение о нажатии кнопки.
Мне кажется всё это ни к чему. Механический дребезг присущ всем кнопкам, тут спорить трудно. Первые несколько милисекунд (не более 5мс) сигнал от нажатия прыгает вверх-вниз, может создаться ощущение, что пользователь многократно нажал кнопку.
Так опрашивайте клаву с периодом большим, чем дребезг, например 20мс, или 50 раз в секунду. И всего делов-то. Даже если при опросе вы попали область дребезга - то и хрен с ним. Поймали единичку, значит юзер нажал кнопку. Поймали нолик при нажатой кнопке - ничего страшного, через 20 мс поймаем точно единичку. И к следующему опросу дребезг заведомо кончится. И счётчики не нужны.
...и каждые 20 мс будем ловить новое нажатие кнопки...

Вот от Вас я меньше всего ожидал такой ахинеи.
omercury вне форума  
Непрочитано 20.03.2013, 16:54   #37
makakus
Почётный гражданин KAZUS.RU
 
Регистрация: 08.10.2007
Сообщений: 2,760
Сказал спасибо: 1,105
Сказали Спасибо 1,037 раз(а) в 569 сообщении(ях)
makakus на пути к лучшему
По умолчанию Re: Опрос кнопки/клавиатуры

У меня микроволновка с энкодером. Сначала работал... Что произойдёт при повороте ручки сейчас - никто сказать не может. Результат программирования по принципу "и хрен с ним".
Я использую программный интегратор для кнопки, для оптрона, для датчика холла. Потому что однообразно и, как выяснилось, и оптроны и холлы могут быть с дребезгом. А они меряют расстояние, причём туда-сюда, вернулись откуда пошли должен быть ноль. Резиновые кнопки от пультов новые имеют дребезг 150мс а старые, бывает, до бесконечности.

Как сделано. Каждая кнопка занимает байт. Там 3 битовых флага ON, UP и DOWN (в младших битах) и счётчик. Нажатая кнопка пусть даёт 1 не нажатая 0.
Раз в 10 мс опрашивается кнопка.
Сбрасываются флаги UP и DOWN.

Если 1 и счётчик!=MAX то:
счётчик++
= MAX/2? поднимается флаг DOWN
› MAX/2? поднимается флаг ON, счётчик = MAX
выход

Если 0 и счётчик›0 то:
счётчик--
= MAX/2? поднимается флаг UP
‹ MAX/2? сбрасывется флаг ONб счётчик=0

Получается, что флаги UP и DOWN соответствуют моменту нажатия/отпускания и живут 1 интервал (10 мс), а флаг ON соответствует состоянию кнопки - нажата/отпущена. В любом месте программы можно вытащить этот байт состояния и посмотреть на кнопку.

Счётчик перещёлкивает в момент MAX/2: получается гистерезис, как в микрике, с пружиной. Любой дребезг не даст случайного срабатывания, только затягивает процесс переключения. Варьируя интервал опроса и разрядность счётчиа, можно получать "тупую" кнопку или "нервную".
Не думайте, что это громоздко: на ассемблере avr это занимает 26 операторов и изменяет 1 регистр, в который помещается значение байта с флагами и счётчиком.
makakus вне форума  
Непрочитано 20.03.2013, 17:09   #38
whoim
Почётный гражданин KAZUS.RU
 
Аватар для whoim
 
Регистрация: 26.11.2011
Адрес: Анапа
Сообщений: 1,620
Сказал спасибо: 284
Сказали Спасибо 129 раз(а) в 111 сообщении(ях)
whoim на пути к лучшему
По умолчанию Re: Опрос кнопки/клавиатуры

Сообщение от makakus Посмотреть сообщение
Каждая кнопка занимает байт. Там 3 битовых флага ON, UP и DOWN (в младших битах) и счётчик
расскажите, как работаете со счетчиком в полубайте?
whoim вне форума  
Непрочитано 20.03.2013, 17:22   #39
Yurkin2007
Заблокирован
 
Регистрация: 27.03.2007
Сообщений: 1,328
Сказал спасибо: 12
Сказали Спасибо 576 раз(а) в 460 сообщении(ях)
Yurkin2007 на пути к лучшему
По умолчанию Re: Опрос кнопки/клавиатуры

Сообщение от omercury Посмотреть сообщение
будем ловить новое нажатие кнопки
Отнюдь, новое нажатие - это когда кнопка была отпущена , а потом снова нажата.
Если юзер нажал и держит, то каждые 20мс будем ловить что кнопка до сих пор нажата и не была отпущена. Стандартно при этом сравнивать предыдущее и текущее состояния кнопки. И если эти состояние не равны, то принимать решение о нажатии кнопки. То есть каждые 20мс делать что-то вроде этого:
PHP код:
new_buttonReadKeyBoard();
if(
new_button!=old_button)
{
    if(
new_button0)new_button_pressed true;
}
old_button=new_button
Yurkin2007 вне форума  
Непрочитано 20.03.2013, 17:30   #40
Yurkin2007
Заблокирован
 
Регистрация: 27.03.2007
Сообщений: 1,328
Сказал спасибо: 12
Сказали Спасибо 576 раз(а) в 460 сообщении(ях)
Yurkin2007 на пути к лучшему
По умолчанию Re: Опрос кнопки/клавиатуры

Сообщение от makakus Посмотреть сообщение
поднимается флаг UP ... поднимается флаг DOWN
флаги UP и DOWN ... живут 1 интервал
А зачем эти флаги нужны?
Yurkin2007 вне форума  
Закрытая тема

Закладки


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

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Опрос кнопки на atmega 16 2517212 Микроконтроллеры, АЦП, память и т.д 10 31.03.2012 10:22
Опрос клавиатуры ra0wbj Микроконтроллеры, АЦП, память и т.д 3 13.10.2011 21:40
Опрос матричной клавиатурки serb-radio Электроника - это просто 2 31.07.2009 16:32
Опрос удалённых датчиков. picavr Микроконтроллеры, АЦП, память и т.д 6 20.03.2009 01:09
Опрос кнопки Electric111 Микроконтроллеры, АЦП, память и т.д 15 18.12.2007 22:48


Часовой пояс GMT +4, время: 03:48.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot