Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей... |
22.03.2013, 12:44
|
#61
|
Частый гость
Регистрация: 29.12.2008
Сообщений: 14
Сказал спасибо: 59
Сказали Спасибо 5 раз(а) в 4 сообщении(ях)
|
Re: Опрос кнопки/клавиатуры
Можно я со своим вопросом влезу?
По дребезгу контактов, в основном рекомендуют примерно такой алгоритм:
1. периодически опрашиваем состояние контактов.
2. если в течении определенного времени состояние контактов не меняется
считаем его стабильным, и выполняем соответствующие этому состоянию действия.
А чем плох такой алгоритм?
1. периодически опрашиваем состояние контактов.
2. при изменении состояния, прекращаем опрашивать (или игнорируем изменения состояния) на определенное время и сразу выполняем соответствующие этому состоянию действия.
|
|
|
|
22.03.2013, 13:14
|
#62
|
Почётный гражданин KAZUS.RU
Регистрация: 08.10.2007
Сообщений: 2,760
Сказал спасибо: 1,105
Сказали Спасибо 1,037 раз(а) в 569 сообщении(ях)
|
Re: Опрос кнопки/клавиатуры
Сообщение от bobr_25
|
Можно я со своим вопросом влезу?
А чем плох такой алгоритм?
1. периодически опрашиваем состояние контактов.
2. при изменении состояния, прекращаем опрашивать (или игнорируем изменения состояния) на определенное время и сразу выполняем соответствующие этому состоянию действия.
|
Плох тем, что не сформулирован однозначно ![Прикольно](images/smilies/icon_wink3.gif) :
1. "периодически опрашиваем состояние контактов." -= всё время видим 0 =-
2 ."при изменении состояния" -= увидели 1 =- "прекращаем опрашивать (или игнорируем изменения состояния) на определенное время" -= делаем задержку =- "и сразу" -= !!! до задержки? после? =- "выполняем соответствующие этому состоянию действия." -= после задержки состоянием не интересуемся? Тогда зачем задержка? =-
Если вы о том, что при изменении состояния кнопки ждём 10/30/50 мс, опрашиваем кнопку и снова получив то же состояние, считаем, что переключение произошло, то перечитайте эту тему. Подключите осциллограф к разным кнопкам/микрикам/герконам/переключателям, посмотрите. Погуглите, зачем RS232 делает 3 выборки в каждом бите, а не одну.
Я один заметил, что примерно к 8-10 странице темы круг замыкается, в смысле появляются вопросы, заданные на 1-2 листе?
|
|
|
|
22.03.2013, 13:46
|
#63
|
Заблокирован
Регистрация: 27.03.2007
Сообщений: 1,328
Сказал спасибо: 12
Сказали Спасибо 576 раз(а) в 460 сообщении(ях)
|
Re: Опрос кнопки/клавиатуры
Сообщение от makakus
|
зачем RS232 делает 3 выборки в каждом бите, а не одну.
|
Потому, что RS232 - асинхронный интерфейс, и ему хочется попасть в середину бита при опросе входа ...
|
|
|
|
22.03.2013, 14:03
|
#64
|
Почётный гражданин KAZUS.RU
Регистрация: 08.06.2008
Сообщений: 1,394
Сказал спасибо: 4
Сказали Спасибо 183 раз(а) в 167 сообщении(ях)
|
Re: Опрос кнопки/клавиатуры
Сообщение от Yurkin2007
|
зачем RS232 делает 3 выборки в каждом бите, а не одну
|
Три - это исчо минимум.
|
|
|
|
22.03.2013, 16:29
|
#65
|
Частый гость
Регистрация: 29.12.2008
Сообщений: 14
Сказал спасибо: 59
Сказали Спасибо 5 раз(а) в 4 сообщении(ях)
|
Re: Опрос кнопки/клавиатуры
Сообщение от makakus
|
Плох тем, что не сформулирован однозначно
|
Уточню.
В прерывании по таймеру - устанавливаем флаг.
В основном цикле -
По условию установленного флага,
опрашиваем состояние кнопок (сравниваем с предыдущим).
Если есть изменение состояния, то следующие N прерываний таймера
будем игнорировать изменение состояния для этой кнопки.
Считаем что состояние кнопки изменилось.
|
|
|
|
22.03.2013, 16:57
|
#66
|
Гражданин KAZUS.RU
Регистрация: 05.04.2009
Сообщений: 976
Сказал спасибо: 35
Сказали Спасибо 155 раз(а) в 134 сообщении(ях)
|
Re: Опрос кнопки/клавиатуры
Сообщение от bobr_25
|
Если есть изменение состояния, то следующие N прерываний таймера будем игнорировать изменение состояния для этой кнопки.
|
А если это не нажатие кнопки а помеха (кнопки на проводках)?
|
|
|
Сказали "Спасибо" oleg110592
|
|
|
22.03.2013, 17:23
|
#67
|
Частый гость
Регистрация: 29.12.2008
Сообщений: 14
Сказал спасибо: 59
Сказали Спасибо 5 раз(а) в 4 сообщении(ях)
|
Re: Опрос кнопки/клавиатуры
Я не имел ввиду конкретного устройства, допустим кнопка на той-же плате, пин контроллера сконфигурирован как вход с подтяжкой к питанию, кнопка соответственно на корпус.
|
|
|
|
22.03.2013, 17:47
|
#68
|
Гражданин KAZUS.RU
Регистрация: 05.04.2009
Сообщений: 976
Сказал спасибо: 35
Сказали Спасибо 155 раз(а) в 134 сообщении(ях)
|
Re: Опрос кнопки/клавиатуры
Подтяжки портов внутренние 50К - от прикосновения рук наводки. В реальных условиях могут быть проблемы. Чисто теоретически будет работать.
|
|
|
Сказали "Спасибо" oleg110592
|
|
|
22.03.2013, 18:38
|
#69
|
Частый гость
Регистрация: 29.12.2008
Сообщений: 14
Сказал спасибо: 59
Сказали Спасибо 5 раз(а) в 4 сообщении(ях)
|
Re: Опрос кнопки/клавиатуры
Все понятно, спасибо за ответы.
|
|
|
|
22.03.2013, 22:07
|
#70
|
Вид на жительство
Регистрация: 09.12.2009
Адрес: Россия, Тула
Сообщений: 377
Сказал спасибо: 192
Сказали Спасибо 156 раз(а) в 99 сообщении(ях)
|
Re: Опрос кнопки/клавиатуры
Сообщение от bobr_25
|
Я не имел ввиду конкретного устройства, допустим кнопка на той-же плате, пин контроллера сконфигурирован как вход с подтяжкой к питанию, кнопка соответственно на корпус.
|
Лучше подтягивать снаружи, насколько хватит наглости (тока) стабилизатора. Не больше 10 кОм точно. Лучше 4,7 или 3.
А когда клава с кнопками вынесена на шлейфе хотя бы на метр - можно еще кондерами законтрить по 0,1мкф, плюс все кнопки через диоды на стабилитрон 4,7в.
Напрямую на стабилитрон нельзя, он может остаться в приоткрытом режиме от малого тока подтяжки. Если там окажется 2,5 вольта - контроллер не поймет нажато или нет. Я так попадал.
Ну и программная обработка дребезга тоже остается
|
|
|
Сказали "Спасибо" krug_vv
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 19:17.
|
|