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

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

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

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

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

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

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

 
Опции темы

Опрос кнопки/клавиатуры

Непрочитано 22.03.2013, 12:44  
bobr_25
Частый гость
 
Регистрация: 29.12.2008
Сообщений: 14
Сказал спасибо: 59
Сказали Спасибо 5 раз(а) в 4 сообщении(ях)
bobr_25 на пути к лучшему
По умолчанию Re: Опрос кнопки/клавиатуры

Можно я со своим вопросом влезу?

По дребезгу контактов, в основном рекомендуют примерно такой алгоритм:

1. периодически опрашиваем состояние контактов.
2. если в течении определенного времени состояние контактов не меняется
считаем его стабильным, и выполняем соответствующие этому состоянию действия.

А чем плох такой алгоритм?

1. периодически опрашиваем состояние контактов.
2. при изменении состояния, прекращаем опрашивать (или игнорируем изменения состояния) на определенное время и сразу выполняем соответствующие этому состоянию действия.
Реклама:
bobr_25 вне форума  
Непрочитано 22.03.2013, 13:14  
makakus
Почётный гражданин KAZUS.RUN
 
Регистрация: 08.10.2007
Сообщений: 2,758
Сказал спасибо: 1,100
Сказали Спасибо 1,033 раз(а) в 568 сообщении(ях)
makakus на пути к лучшему
По умолчанию Re: Опрос кнопки/клавиатуры

Сообщение от bobr_25 Посмотреть сообщение
Можно я со своим вопросом влезу?

А чем плох такой алгоритм?

1. периодически опрашиваем состояние контактов.
2. при изменении состояния, прекращаем опрашивать (или игнорируем изменения состояния) на определенное время и сразу выполняем соответствующие этому состоянию действия.
Плох тем, что не сформулирован однозначно :
1. "периодически опрашиваем состояние контактов." -= всё время видим 0 =-
2 ."при изменении состояния" -= увидели 1 =- "прекращаем опрашивать (или игнорируем изменения состояния) на определенное время" -= делаем задержку =- "и сразу" -= !!! до задержки? после? =- "выполняем соответствующие этому состоянию действия." -= после задержки состоянием не интересуемся? Тогда зачем задержка? =-

Если вы о том, что при изменении состояния кнопки ждём 10/30/50 мс, опрашиваем кнопку и снова получив то же состояние, считаем, что переключение произошло, то перечитайте эту тему. Подключите осциллограф к разным кнопкам/микрикам/герконам/переключателям, посмотрите. Погуглите, зачем RS232 делает 3 выборки в каждом бите, а не одну.

Я один заметил, что примерно к 8-10 странице темы круг замыкается, в смысле появляются вопросы, заданные на 1-2 листе?
makakus вне форума  
Непрочитано 22.03.2013, 13:46  
Yurkin2007
Заблокирован
 
Регистрация: 27.03.2007
Сообщений: 1,327
Сказал спасибо: 12
Сказали Спасибо 576 раз(а) в 460 сообщении(ях)
Yurkin2007 на пути к лучшему
По умолчанию Re: Опрос кнопки/клавиатуры

Сообщение от makakus Посмотреть сообщение
зачем RS232 делает 3 выборки в каждом бите, а не одну.
Потому, что RS232 - асинхронный интерфейс, и ему хочется попасть в середину бита при опросе входа ...
Yurkin2007 вне форума  
Непрочитано 22.03.2013, 14:03  
Boba_spb
Почётный гражданин KAZUS.RUN
 
Регистрация: 08.06.2008
Сообщений: 1,393
Сказал спасибо: 4
Сказали Спасибо 183 раз(а) в 167 сообщении(ях)
Boba_spb на пути к лучшему
По умолчанию Re: Опрос кнопки/клавиатуры

Сообщение от Yurkin2007 Посмотреть сообщение
зачем RS232 делает 3 выборки в каждом бите, а не одну
Три - это исчо минимум.
Boba_spb вне форума  
Непрочитано 22.03.2013, 16:29  
bobr_25
Частый гость
 
Регистрация: 29.12.2008
Сообщений: 14
Сказал спасибо: 59
Сказали Спасибо 5 раз(а) в 4 сообщении(ях)
bobr_25 на пути к лучшему
По умолчанию Re: Опрос кнопки/клавиатуры

Сообщение от makakus Посмотреть сообщение
Плох тем, что не сформулирован однозначно

Уточню.
В прерывании по таймеру - устанавливаем флаг.
В основном цикле -
По условию установленного флага,
опрашиваем состояние кнопок (сравниваем с предыдущим).
Если есть изменение состояния, то следующие N прерываний таймера
будем игнорировать изменение состояния для этой кнопки.
Считаем что состояние кнопки изменилось.
bobr_25 вне форума  
Непрочитано 22.03.2013, 16:57  
oleg110592
Гражданин KAZUS.RUN
 
Регистрация: 05.04.2009
Сообщений: 973
Сказал спасибо: 35
Сказали Спасибо 154 раз(а) в 133 сообщении(ях)
oleg110592 на пути к лучшему
По умолчанию Re: Опрос кнопки/клавиатуры

Сообщение от bobr_25 Посмотреть сообщение
Если есть изменение состояния, то следующие N прерываний таймера будем игнорировать изменение состояния для этой кнопки.
А если это не нажатие кнопки а помеха (кнопки на проводках)?
oleg110592 вне форума  
Сказали "Спасибо" oleg110592
bobr_25 (22.03.2013)
Непрочитано 22.03.2013, 17:23  
bobr_25
Частый гость
 
Регистрация: 29.12.2008
Сообщений: 14
Сказал спасибо: 59
Сказали Спасибо 5 раз(а) в 4 сообщении(ях)
bobr_25 на пути к лучшему
По умолчанию Re: Опрос кнопки/клавиатуры

Я не имел ввиду конкретного устройства, допустим кнопка на той-же плате, пин контроллера сконфигурирован как вход с подтяжкой к питанию, кнопка соответственно на корпус.
bobr_25 вне форума  
Непрочитано 22.03.2013, 17:47  
oleg110592
Гражданин KAZUS.RUN
 
Регистрация: 05.04.2009
Сообщений: 973
Сказал спасибо: 35
Сказали Спасибо 154 раз(а) в 133 сообщении(ях)
oleg110592 на пути к лучшему
По умолчанию Re: Опрос кнопки/клавиатуры

Подтяжки портов внутренние 50К - от прикосновения рук наводки. В реальных условиях могут быть проблемы. Чисто теоретически будет работать.
oleg110592 вне форума  
Сказали "Спасибо" oleg110592
bobr_25 (22.03.2013)
Непрочитано 22.03.2013, 18:38  
bobr_25
Частый гость
 
Регистрация: 29.12.2008
Сообщений: 14
Сказал спасибо: 59
Сказали Спасибо 5 раз(а) в 4 сообщении(ях)
bobr_25 на пути к лучшему
По умолчанию Re: Опрос кнопки/клавиатуры

Все понятно, спасибо за ответы.
bobr_25 вне форума  
Непрочитано 22.03.2013, 22:07  
krug_vv
Вид на жительство
 
Регистрация: 09.12.2009
Адрес: Россия, Тула
Сообщений: 376
Сказал спасибо: 191
Сказали Спасибо 153 раз(а) в 98 сообщении(ях)
krug_vv на пути к лучшему
По умолчанию Re: Опрос кнопки/клавиатуры

Сообщение от bobr_25 Посмотреть сообщение
Я не имел ввиду конкретного устройства, допустим кнопка на той-же плате, пин контроллера сконфигурирован как вход с подтяжкой к питанию, кнопка соответственно на корпус.
Лучше подтягивать снаружи, насколько хватит наглости (тока) стабилизатора. Не больше 10 кОм точно. Лучше 4,7 или 3.
А когда клава с кнопками вынесена на шлейфе хотя бы на метр - можно еще кондерами законтрить по 0,1мкф, плюс все кнопки через диоды на стабилитрон 4,7в.
Напрямую на стабилитрон нельзя, он может остаться в приоткрытом режиме от малого тока подтяжки. Если там окажется 2,5 вольта - контроллер не поймет нажато или нет. Я так попадал.
Ну и программная обработка дребезга тоже остается
krug_vv вне форума  
Сказали "Спасибо" krug_vv
bobr_25 (24.03.2013)
 
Опции темы

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

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, время: 05:06.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.