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

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

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

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

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

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

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

 
Опции темы
Непрочитано 20.03.2013, 12:57  
Boba_spb
Почётный гражданин KAZUS.RU
 
Регистрация: 08.06.2008
Сообщений: 1,394
Сказал спасибо: 4
Сказали Спасибо 183 раз(а) в 167 сообщении(ях)
Boba_spb на пути к лучшему
По умолчанию Re: Опрос кнопки/клавиатуры

Сообщение от metrA85 Посмотреть сообщение
Эдак можно столько байт под флаги нарубить... куда экономичнее будет юзать отдельные биты для флага (на то он и флаг - емеет два состояния 0 и 1)
А если не примитивное пользование флагов типа
PHP код:
if ( ( flag1 &  ( ~flag2 ) ) || ( flag3 & ( flag1 || flag2 ) ) )
   {
   ..... 
   } 
С битовыми флагами то как тут быть? А если их исчо до дури, и в одно слово они не лезут?
Реклама:
Boba_spb вне форума  
Непрочитано 20.03.2013, 13:01  
tempora
Почётный гражданин KAZUS.RU
 
Регистрация: 10.01.2007
Сообщений: 3,412
Сказал спасибо: 65
Сказали Спасибо 664 раз(а) в 443 сообщении(ях)
tempora на пути к лучшему
По умолчанию Re: Опрос кнопки/клавиатуры

Сообщение от Easyrider83 Посмотреть сообщение
Ибо на проверку установки бита уходит еще несколько циклов.
Это Вы о каком-то конкретном процике, а здесь, насколько я вижу, прицик-то не задан. В атмелах, сами знаете - всего одна инструкция.
__________________
There's always more than one way to skin a cat.
tempora вне форума  
Непрочитано 20.03.2013, 13:02  
tempora
Почётный гражданин KAZUS.RU
 
Регистрация: 10.01.2007
Сообщений: 3,412
Сказал спасибо: 65
Сказали Спасибо 664 раз(а) в 443 сообщении(ях)
tempora на пути к лучшему
По умолчанию Re: Опрос кнопки/клавиатуры

Сообщение от Boba_spb Посмотреть сообщение
А если не примитивное пользование флагов
Здесь конкретный пример, а не вообще о флагах.
__________________
There's always more than one way to skin a cat.
tempora вне форума  
Непрочитано 20.03.2013, 13:05  
Easyrider83
Гуру портала
 
Аватар для Easyrider83
 
Регистрация: 27.10.2008
Адрес: ЕС
Сообщений: 10,835
Сказал спасибо: 919
Сказали Спасибо 4,308 раз(а) в 2,573 сообщении(ях)
Easyrider83 на пути к лучшему
По умолчанию Re: Опрос кнопки/клавиатуры

Еще вариант - проверять порт по маске. Кнопки-то всяко не по разным портам разбросаны. Если маска не ноль - какая-то кнопка нажата, подняли флаг, в теле обработали нажатие. Хоть тем же инкриментом. Там уже без разницы.
Еще способ - по прерыванию PIN CHANGE. В прерывании прочитали порт (без этого не сбросить флага прерывания), выключили это прерывание, подняли флаг. В таймере увидели поднятый флаг, опустили, подняли другой флаг или инкременировали переменную. В теле проверили. Если больше определенного значения, значит нажата кнопка. Это обработка антидребезга.
Easyrider83 вне форума  
Непрочитано 20.03.2013, 13:12  
tempora
Почётный гражданин KAZUS.RU
 
Регистрация: 10.01.2007
Сообщений: 3,412
Сказал спасибо: 65
Сказали Спасибо 664 раз(а) в 443 сообщении(ях)
tempora на пути к лучшему
По умолчанию Re: Опрос кнопки/клавиатуры

Сообщение от Easyrider83 Посмотреть сообщение
Еще вариант - проверять порт по маске.
Это уже было - По байту под каждую кнопку - многовато,... : "#define READKEYB_ ((~PINx) & _KEYS_MASK_)"

Сообщение от Easyrider83 Посмотреть сообщение
Еще способ - по прерыванию PIN CHANGE.
- там же.
__________________
There's always more than one way to skin a cat.
tempora вне форума  
Непрочитано 20.03.2013, 13:18  
Easyrider83
Гуру портала
 
Аватар для Easyrider83
 
Регистрация: 27.10.2008
Адрес: ЕС
Сообщений: 10,835
Сказал спасибо: 919
Сказали Спасибо 4,308 раз(а) в 2,573 сообщении(ях)
Easyrider83 на пути к лучшему
По умолчанию Re: Опрос кнопки/клавиатуры

tempora, это все очень хорошо и правильно. Просто чужие коды лопатить утомительно. Важно ведь идея, а не сотня чужих процедур сомнительного происхождения.
Easyrider83 вне форума  
Непрочитано 20.03.2013, 13:22  
tempora
Почётный гражданин KAZUS.RU
 
Регистрация: 10.01.2007
Сообщений: 3,412
Сказал спасибо: 65
Сказали Спасибо 664 раз(а) в 443 сообщении(ях)
tempora на пути к лучшему
По умолчанию Re: Опрос кнопки/клавиатуры

Сообщение от Easyrider83 Посмотреть сообщение
Просто чужие коды лопатить утомительно.
В некоторых случаях выбор настолько небогат, что лучше-таки "лопатить".
__________________
There's always more than one way to skin a cat.
tempora вне форума  
Непрочитано 20.03.2013, 13:36  
baiderin
Почётный гражданин KAZUS.RU
 
Аватар для baiderin
 
Регистрация: 10.12.2007
Адрес: Екатеринбург
Сообщений: 2,730
Сказал спасибо: 2,439
Сказали Спасибо 893 раз(а) в 580 сообщении(ях)
baiderin на пути к лучшему
По умолчанию Re: Опрос кнопки/клавиатуры

Так пусть и лопатит,кому насоветовали. Главное-напредлагать вариантов,чтобы выбирать или обдумать было что.
baiderin вне форума  
Непрочитано 20.03.2013, 13:38  
Yurkin2007
Заблокирован
 
Регистрация: 27.03.2007
Сообщений: 1,328
Сказал спасибо: 12
Сказали Спасибо 576 раз(а) в 460 сообщении(ях)
Yurkin2007 на пути к лучшему
По умолчанию Re: Опрос кнопки/клавиатуры

Вот вы говорите "дребезг-антидребезг"... Запускаете счётчики после первого непустого чтения клавы. И когда счётчик достигнет какого-то значения, принимаете решение о нажатии кнопки.
Мне кажется всё это ни к чему. Механический дребезг присущ всем кнопкам, тут спорить трудно. Первые несколько милисекунд (не более 5мс) сигнал от нажатия прыгает вверх-вниз, может создаться ощущение, что пользователь многократно нажал кнопку.
Так опрашивайте клаву с периодом большим, чем дребезг, например 20мс, или 50 раз в секунду. И всего делов-то. Даже если при опросе вы попали область дребезга - то и хрен с ним. Поймали единичку, значит юзер нажал кнопку. Поймали нолик при нажатой кнопке - ничего страшного, через 20 мс поймаем точно единичку. И к следующему опросу дребезг заведомо кончится. И счётчики не нужны.
А использование подобных накопительных счётчиков - это есть борьба с помехами. Типа, чтобы не было ложных срабатываний от импульсных помех. Ну, если у вас по линии клавы гуляют такие большие помехи, то тут уже надоть и фильтры ставить, и программные счётчики применять. Но такая ситуация встречается нечасто. И не имеет никакого отношения к антидребезгу ...
Yurkin2007 вне форума  
Непрочитано 20.03.2013, 13:45  
tempora
Почётный гражданин KAZUS.RU
 
Регистрация: 10.01.2007
Сообщений: 3,412
Сказал спасибо: 65
Сказали Спасибо 664 раз(а) в 443 сообщении(ях)
tempora на пути к лучшему
По умолчанию Re: Опрос кнопки/клавиатуры

Сообщение от Yurkin2007 Посмотреть сообщение
Даже если при опросе вы попали область дребезга - то и хрен с ним.
То есть, если пользователь нажал "Тише", а программа считала и выполнила "Громче" - то "и хрен с ним"? Не самое удачное решение...
__________________
There's always more than one way to skin a cat.
tempora вне форума  
 

Закладки
Опции темы

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

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:44.


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