Например TDA7294

Форум РадиоКот • Просмотр темы - Опрос кнопок микроконтроллером
Форум РадиоКот
Здесь можно немножко помяукать :)





Текущее время: Вт мар 19, 2024 06:04:37

Часовой пояс: UTC + 3 часа


ПРЯМО СЕЙЧАС:



Начать новую тему Ответить на тему  [ Сообщений: 321 ]     ... , , , 14, , ,  
Автор Сообщение
Не в сети
 Заголовок сообщения: Re: Программный антидребезг
СообщениеДобавлено: Сб дек 10, 2016 18:49:33 
Нашел транзистор. Понюхал.
Аватар пользователя

Карма: 5
Рейтинг сообщений: 21
Зарегистрирован: Пн июл 04, 2016 16:51:22
Сообщений: 196
Откуда: Россия, Омск
Рейтинг сообщения: 0
Мой вариант антидребезга:

Соответственно, Buttons_Poll() вызывается каждую милисекунду в основном потоке выполнения, не блокирует работу основного потока и обрабатывает события нажатия (не отпускания, но и это можно сделать).


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Программный антидребезг
СообщениеДобавлено: Сб дек 10, 2016 19:00:04 
Это не хвост, это антенна

Карма: 4
Рейтинг сообщений: 140
Зарегистрирован: Ср июн 25, 2008 15:19:44
Сообщений: 1382
Рейтинг сообщения: 0
Oxford - ваше видео тонкое послатие найух. Что вы показали, спрашивается? Какое-то ублюдочное решение? Ублюдочное не в плане автора, а самого решения.
Если вздумаете возмутиться. Вот мой пример. Ссылка.

Примерщикам: Везде, во всех ваших примерах я вижу стремление показать насколько короче ваш код. То есть подспудное желание показать, типа вот как у меня короче чем у тебя. Но каждый раз я вижу какие-то огрызки решения. Вы покажите полностью ваш код. От опроса кнопок до определения кода кнопки. И как остальным модулям реагировать на события, коды кнопок и так далее.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Программный антидребезг
СообщениеДобавлено: Сб дек 10, 2016 21:38:45 
Друг Кота

Зарегистрирован: Вт мар 13, 2012 12:16:13
Сообщений: 6849
Откуда: .ru
Рейтинг сообщения: 0
А я обычно использую вот такой простенький алгоритм))

http://mypractic.ru/urok-8-cifrovaya-fi ... duino.html

Код не показываю, т.к. код каждый пишет сам... как ему удобней))


Вернуться наверх
 
PCBWay - всего $5 за 10 печатных плат, первый заказ для новых клиентов БЕСПЛАТЕН

Сборка печатных плат от $30 + БЕСПЛАТНАЯ доставка по всему миру + трафарет

Онлайн просмотровщик Gerber-файлов от PCBWay + Услуги 3D печати
Не в сети
 Заголовок сообщения: Re: Программный антидребезг
СообщениеДобавлено: Сб дек 10, 2016 21:48:37 
Это не хвост, это антенна

Карма: 4
Рейтинг сообщений: 140
Зарегистрирован: Ср июн 25, 2008 15:19:44
Сообщений: 1382
Рейтинг сообщения: 0
roman.com писал(а):
...

От подобного описания мне хочется головой биться об стол. Куда катится мир? Ардуинщик описывает как обрабатывать кнопу. Блджааад! Много заумных слов, мало толку. Чистый программер или админ дорвался до электронной платы со своими нулевыми познаниями в электронике...
Порой мне хочется какого-нибудь ардуинщика за яйцы подвесить, чтобы не лезли куда не следует...


Вернуться наверх
 
Сравнительное тестирование аккумуляторов EVE Energy и Samsung типоразмера 18650

Инженеры КОМПЭЛ провели сравнительное тестирование аккумуляторов EVE и Samsung популярного для бытовых и индустриальных применений типоразмера 18650. Для теста были выбраны аккумуляторы литий-никельмарганцевой системы: по два образца одного наименования каждого производителя – и протестированы на двух значениях тока разряда: 0,5 А и 2,5 А. Испытания проводились в нормальных условиях на электронной нагрузке EBD-USB от ZKEtech, а зарядка осуществлялась от лабораторного источника питания в режиме CC+CV в соответствии с рекомендациями в даташите на определенную модель.

Подробнее>>
Не в сети
 Заголовок сообщения: Re: Программный антидребезг
СообщениеДобавлено: Сб дек 10, 2016 22:16:51 
Друг Кота

Зарегистрирован: Вт мар 13, 2012 12:16:13
Сообщений: 6849
Откуда: .ru
Рейтинг сообщения: 0
:))) ну я не адруинщик.. это не про меня)) у меня даже ардуины нет))


Вернуться наверх
 
Новый аккумулятор EVE серии PLM для GSM-трекеров, работающих в жёстких условиях (до -40°С)

Компания EVE выпустила новый аккумулятор серии PLM, сочетающий в себе высокую безопасность, длительный срок службы, широкий температурный диапазон и высокую токоотдачу даже при отрицательной температуре. Эти аккумуляторы поддерживают заряд при температуре от -40/-20°С (сниженным значением тока), безопасны (не воспламеняются и не взрываются) при механическом повреждении (протыкание и сдавливание), устойчивы к вибрации. Они могут применяться как для автотранспорта (трекеры, маячки, сигнализация), так и для промышленных устройств мониторинга, IoT-устройств.

Подробнее>>
Не в сети
 Заголовок сообщения: Re: Программный антидребезг
СообщениеДобавлено: Сб дек 10, 2016 23:05:13 
Вымогатель припоя
Аватар пользователя

Карма: 7
Рейтинг сообщений: 58
Зарегистрирован: Чт янв 20, 2011 09:07:08
Сообщений: 665
Откуда: Пермь
Рейтинг сообщения: 0
Demiurg писал(а):
Везде, во всех ваших примерах я вижу стремление показать насколько короче ваш код. То есть подспудное желание показать, типа вот как у меня короче чем у тебя. Но каждый раз я вижу какие-то огрызки решения. Вы покажите полностью ваш код. От опроса кнопок до определения кода кнопки. И как остальным модулям реагировать на события, коды кнопок и так далее.

Вы название темы прочитайте, ага?

_________________
Никакая контра не уйдёт от нас


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Программный антидребезг
СообщениеДобавлено: Пн дек 12, 2016 09:47:52 
Модератор
Аватар пользователя

Карма: 153
Рейтинг сообщений: 2800
Зарегистрирован: Сб авг 14, 2010 15:05:51
Сообщений: 18014
Откуда: г. Озерск, Челябинская обл.
Рейтинг сообщения: 0
Медали: 1
Лучший человек Форума 2017 (1)
не нужен никакой хитроумный алгоритм против дребезга.
а опрашивать кнопки каждую миллисекунду - величайшая глупость.
реакция человека на столько медленная, что обрабатывать действия кнопок нельзя слишком часто. нужно, чтобы человек успевал реагировать на произведенное действие.

мне приходилось работать с промышленными приборами, у которых приборный цикл составлял 0,32 сек. за 0,32 сек., после приобретения навыков (тренировки реакции) можно было успевать реагировать. тут я имею в виду, например, при изменении значения параметра нужно не проскочить мимо нужного значения и своевременно отпустить кнопку.

в своих разработках я увеличил обработку состояний кнопок до полсекунды, когда приобрести навык своевременного отпускания кнопки проще, чем при более коротком периоде.
поэтому и порты кнопок достаточно опросить один раз за полсекунды. нашли, что кнопка нажата - поставили соответствующий этой кнопке бит.
а дребезг нажатия и отпускания кнопки останется далеко за пределами того "мгновения", когда кнопка проверяется.
да, теоретически момент опроса порта может совпасть с моментом нажатия кнопки и тогда из-за дребезга кнопка определится не нажатой. ну, подержишь эту кнопку еще не менее 0,5 сек. чтобы зафиксировать ее нажатие.

опрос кнопок один раз за полсекунды - это абсолютный минимум, чтобы дребезг не влиял.
и этот абсолютный минимум прекрасно работает!!! я у себя проверял.
но реально я делаю чуть сложнее. я у себя делаю опрос кнопок каждую 0,1 сек. и подсчитываю число нажатых состояний для каждой кнопки.
за весь интервал 0,5 сек. получается максимум 5 срабатываний нажатого состояния.
когда я обрабатываю состояние кнопок (один раз за 0,5 сек.), то не менее 3 срабатываний считается за нажатое состояние.
но это уже излишество. и поскольку абсолютный минимум прекрасно работает, я собираюсь отказаться от этого излишества, и опрос кнопок сделал тоже один раз в 0,5 сек.

_________________
Мудрость приходит вместе с импотенцией...
Когда на русском форуме переходят на Вы, в реальной жизни начинают бить морду.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Программный антидребезг
СообщениеДобавлено: Пн дек 12, 2016 09:50:02 
Вымогатель припоя
Аватар пользователя

Карма: 7
Рейтинг сообщений: 58
Зарегистрирован: Чт янв 20, 2011 09:07:08
Сообщений: 665
Откуда: Пермь
Рейтинг сообщения: 0
Щелчок тактовой кнопкой всё-таки длится короче 0.5 сек.

_________________
Никакая контра не уйдёт от нас


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Программный антидребезг
СообщениеДобавлено: Пн дек 12, 2016 10:04:16 
Модератор
Аватар пользователя

Карма: 90
Рейтинг сообщений: 1289
Зарегистрирован: Чт мар 18, 2010 23:09:57
Сообщений: 4510
Откуда: Планета Земля
Рейтинг сообщения: 0
Медали: 1
Получил миской по аватаре (1)
Щелчёк - это ~ 0.2...0.3 сек.
А ждать 0.5 сек нажатой кнопку, для одного клика - мазохизм.
Встречался я с пром-приборами, ПО для которых писались такими горе-программистами. Одно только лазанье по меню вызывает раздражение, переходящее в нервоз. Не говоря уж о том, когда увеличиваешь/уменьшаешь цифровые значения параметров :facepalm:


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Помогите опросить кнопку
СообщениеДобавлено: Пн дек 12, 2016 11:54:58 
Модератор
Аватар пользователя

Карма: 153
Рейтинг сообщений: 2800
Зарегистрирован: Сб авг 14, 2010 15:05:51
Сообщений: 18014
Откуда: г. Озерск, Челябинская обл.
Рейтинг сообщения: 3
Медали: 1
Лучший человек Форума 2017 (1)
Аlex писал(а):
Щелчёк - это ~ 0.2...0.3 сек.
это время реакции человека, а не время, затрачиваемое на замыкание контактов.
к тому же, за 0,2 сек. далеко не каждый человек сможет без опоздания среагировать на появившееся изменение и без опоздания отпустить кнопку.
Starichok51 писал(а):
мне приходилось работать с промышленными приборами, у которых приборный цикл составлял 0,32 сек.
0,32 сек. вполне согласуется с твоим понятием "щелчка" кнопкой. и как я уже сказал, 0,32 сек. вполне достаточно, чтобы успеть вовремя отпустить кнопку. и как я уже сказал, что даже для 0,32 сек. нужно время для приобретения навыка вовремя отпускать кнопку.
первое время работы с этими приборами (за 0,32 сек.) и я сам и ВСЕ люди безнадежно опаздывали вовремя отпускать кнопку. и только со временем появлялся навык вовремя реагировать.
а то, что я решил увеличить время на реакцию человека до 0,5 сек. - это только мое личное дело.
горе-программист тот, кто не заботится о людях, а думает, что абсолютно все люди обладают такой же "мгновенной" реакцией, как он, и делают кнопочный цикл 0,2 сек.
а 0,5 сек. - это забота о людях, которые будут повторять мои конструкции, чтобы они потом не плевались на слишком быструю смену показаний прибора.

_________________
Мудрость приходит вместе с импотенцией...
Когда на русском форуме переходят на Вы, в реальной жизни начинают бить морду.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Помогите опросить кнопку
СообщениеДобавлено: Пн дек 12, 2016 12:01:08 
Модератор
Аватар пользователя

Карма: 90
Рейтинг сообщений: 1289
Зарегистрирован: Чт мар 18, 2010 23:09:57
Сообщений: 4510
Откуда: Планета Земля
Рейтинг сообщения: 0
Медали: 1
Получил миской по аватаре (1)
Причём тут быстрая смена показаний ? Быстро меняться должно когда держишь кнопку длительное время, и это может быть доп. опцией, упрощающей большие изменения. А на клик прибор должен реагировать адекватно, т.е. щёлкнул - показания сменились, а не ждать какое-то время. Бывает нужно щелчками подогнать показания, при этом ждать, когда прибор отреагирует на щелчок 0.5 сек - некомильфо. Частота таких нажатий может достигать более 5 Гц.
Клик - это событие, происходящее при изменении одного состояния на другое, а не время удержания кнопки. Именно изменение состояния и нужно обрабатывать. Это избавит от предсказывания реакции пользователя. Он нажал->отпустил - клик прибором зафиксирован. А сколько он будет её удерживать, 0.1 сек или 1.0 сек - это уже его дело.

Цитата:
горе-программист тот, кто не заботится о людях
Тут я совершенно согласен. По этому я и назвал тех "программистов" таковыми. Они совершенно не думали о пользователях, а делали как им хочется(проще, ...).


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Помогите опросить кнопку
СообщениеДобавлено: Пн дек 12, 2016 12:52:53 
Модератор
Аватар пользователя

Карма: 153
Рейтинг сообщений: 2800
Зарегистрирован: Сб авг 14, 2010 15:05:51
Сообщений: 18014
Откуда: г. Озерск, Челябинская обл.
Рейтинг сообщения: 0
Медали: 1
Лучший человек Форума 2017 (1)
Аlex писал(а):
А сколько он будет её удерживать, 0.1 сек или 1.0 сек - это уже его дело.
на этот случай у меня есть бит блокировки кнопок. можно удерживать хоть "до посинения".
для лучшего понимания вкратце изложу суть.
у меня есть список параметров. его можно "листать" вперед или назад.
вот тут я с тобой могу согласиться, что переход от одного параметра к другому может проходить меньше, чем за 0,5 сек. например, за 0,1 сек.
и другие действия, не связанные с изменением какого-либо параметра, тоже можно делать за 0,1 сек.
а когда у меня происходит изменение значения параметра, то для изменения на большую величину кнопка удерживается на продолжительное время, пока не подберемся близко к требуемому значению. и вот тут интервал срабатывания кнопки должен быть относительно медленным, чтобы пользователь успел вовремя отпустить кнопку.
я вот этот относительно медленный интервал (0,5 сек.) выбрал основным для любых действий с кнопками.

_________________
Мудрость приходит вместе с импотенцией...
Когда на русском форуме переходят на Вы, в реальной жизни начинают бить морду.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Помогите опросить кнопку
СообщениеДобавлено: Пн дек 12, 2016 13:22:11 
Ум, честь и совесть. И скромность.
Аватар пользователя

Карма: 97
Рейтинг сообщений: 2057
Зарегистрирован: Чт дек 28, 2006 08:19:56
Сообщений: 18024
Откуда: Новочеркасск
Рейтинг сообщения: 0
Медали: 2
Получил миской по аватаре (1) Мявтор 3-й степени (1)
люблю я теоретизирование :)))

я одно время был озабочен какой-то стандартизацией обработок кнопки в своих проектах, и даже 5-6 проектов сделал по этому "стандарту"... а потом как-то снова скатился в ... в разнообразие скатился.

сделал я два уровня абстракции: нижний, где определена единственная функция get_scancode(), возвращающая код нажатой кнопки, и верхний, где реализована функция get_key(), реализующая нужный протокол обработки.

get_scancode() делает минимум: собирает битовые состояния всех кнопок в один единственный байт, таким образом этот байт соответствует сканкоду, если говорить в терминах больших компов. откуда этот сканкод берется - дело программиста: можно опрашивать по битику разные порты, можно сразу один порт, если все кнопки на нем висят, можно ждать, пока какая-то переменная будет обновлена в прерывании (например, при совмещении линий кнопок с другими функциями, обычно с дисплеем). можно эту функцию даже макросом заменить, только тогда модульность нарушится...

get_key() делает больше: обращается к get_scancode() и затем борется с дребезгом, сравнивая предыдущий сканкод с новым, а затем отсчитывает задержки для автоповтора. алгоритм работы этой функции не зависит от способа получения сканкода. get_key() в основном реализует следующий алгоритм: если кнопка нажата и удерживается, то отсчитывается интервал до первого автоповтора, после чего возвращается сканкод. любое последующее обращение к get_key() обрабатывается иначе: если кнопка все еще удерживается нажатой, то выдача сканкода происходит после задержки автоповтора. если обнаруживается, что состояние кнопок изменилось, например, когда нажали вторую, не отпустив первую, то один раз возвращается NO_KEY (нет нажатых кнопок), после чего происходит обработка, как будто было первое нажатие, т.е. сначала задержка перед автоповтором, а потом автоповтор.

задержка перед автоповтором у меня обычно от 1 до 3 секунд, в зависимости от проекта. а задержка автоповтора обычно 0,5-0,3 сек. такие задержки позволяют четко отличить ДОЛГОЕ УДЕРЖАНИЕ кнопки от кратковременного нажатия, и при этом позволяет производить достаточно быстрое изменение параметра при удержании, но не требует особой реакции от пользователя.

как-то так...

_________________
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

скушно, бабоньки!


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Помогите опросить кнопку
СообщениеДобавлено: Пн янв 30, 2017 01:03:22 
Опытный кот
Аватар пользователя

Карма: 4
Рейтинг сообщений: 11
Зарегистрирован: Вт окт 23, 2012 13:17:25
Сообщений: 823
Откуда: Киселевск
Рейтинг сообщения: 0
Еще раз обьясняю. Тебе нужно отдельно сделать таймер или задачу в ОС создать, которая будет постоянно вызывать опрос каждые 10мс. Идеально если это будет программный таймер средствами ОС повторяющийся с периодом 10мс.

Вставляешь на каждую кнопку этот код:

Код:

uint8_t Button_count_POWER = 0;
uint8_t Button_state_POWER = 0;
uint8_t Button_repeat_POWER = 0;

#define DELAY_PRESS_BUTTON 5
#define BUTTON_REPEAT 50
#define BUTTON_POWER_PRESS    (GPIOA->IDR & GPIO_Pin_0)

 if (BUTTON_POWER_PRESS != 0)
   {
      if (Button_count_POWER < DELAY_PRESS_BUTTON)
         Button_count_POWER++; else
      {

         if (Button_state_POWER == 1) //Автоповтор
         {
            
            Button_repeat_POWER++;
            
            if (Button_repeat_POWER == BUTTON_REPEAT)
            {
               Button_repeat_POWER = 0;
        //
        //Код обработки повторного нажатия кнопки.
        //
           }
            
            
         }

         if (Button_state_POWER == 0) //Одинарное нажатие
         {
            Button_repeat_POWER = 0;
            Button_state_POWER = 1;
        //
        //Код обработки нажатия кнопки.
        //
         }
         
      }
   } else
   {
      if (Button_count_POWER > 0)
         Button_count_POWER--; else Button_state_POWER = 0;
   }


И все будет работать сладко и гладко. Больше ничего не надо, ни прерываний, ни конденсаторов на линию. Работать будет железно как танк. Частоту опроса регулируешь таймером подстраиваешь отклик системы, а переменная DELAY_PRESS_BUTTON регулирует паузу нажатия и отпускания, фильтр.

Добавлено after 29 minutes 37 seconds:
Re: Программный антидребезг
Demiurg писал(а):
Oxford - ваше видео тонкое послатие найух. Что вы показали, спрашивается? Какое-то ублюдочное решение? Ублюдочное не в плане автора, а самого решения.
Если вздумаете возмутиться. Вот мой пример. Ссылка.

Примерщикам: Везде, во всех ваших примерах я вижу стремление показать насколько короче ваш код. То есть подспудное желание показать, типа вот как у меня короче чем у тебя. Но каждый раз я вижу какие-то огрызки решения. Вы покажите полностью ваш код. От опроса кнопок до определения кода кнопки. И как остальным модулям реагировать на события, коды кнопок и так далее.


В чем истерика? Логика работы такая же, реализация немного другая и все более туповатая.

_________________
Инженер R@D

Telegram чат: https://t.me/radiowolf или в поиске приложения @radiowolf. Личка:@cncoxford


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Помогите опросить кнопку
СообщениеДобавлено: Пн янв 30, 2017 13:54:39 
Опытный кот
Аватар пользователя

Карма: 15
Рейтинг сообщений: 16
Зарегистрирован: Чт авг 19, 2010 23:49:19
Сообщений: 803
Откуда: Ташкент
Рейтинг сообщения: 0
Oxford писал(а):
Demiurg писал(а):
Примерщикам: Везде, во всех ваших примерах я вижу стремление показать насколько короче ваш код.
Нe всякий мужчина (да и девушка) поймёт, что если двое хвастаются "у кого - короче" - значит программисты! :))
P.S.: Сам этим грешу часто… :)))

_________________
Я тебя полюбил, я тебя научу! ©Уэф


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Помогите опросить кнопку
СообщениеДобавлено: Ср фев 01, 2017 08:03:36 
Модератор
Аватар пользователя

Карма: 153
Рейтинг сообщений: 2800
Зарегистрирован: Сб авг 14, 2010 15:05:51
Сообщений: 18014
Откуда: г. Озерск, Челябинская обл.
Рейтинг сообщения: 0
Медали: 1
Лучший человек Форума 2017 (1)
Oxford писал(а):
будет постоянно вызывать опрос каждые 10мс.
учитывая время реакции человека, ты можешь объяснить, а на хера нужно так часто опрашивать кнопки?

_________________
Мудрость приходит вместе с импотенцией...
Когда на русском форуме переходят на Вы, в реальной жизни начинают бить морду.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Помогите опросить кнопку
СообщениеДобавлено: Ср фев 01, 2017 12:40:54 
Модератор
Аватар пользователя

Карма: 90
Рейтинг сообщений: 1289
Зарегистрирован: Чт мар 18, 2010 23:09:57
Сообщений: 4510
Откуда: Планета Земля
Рейтинг сообщения: 0
Медали: 1
Получил миской по аватаре (1)
При дин. индикации, реакция глаза человека тоже выше 25 Гц не видит, хотя все эту частоту завышают. Тоже спросите "нахрена ?" ?
Я, например, вообще делаю переключения каждую миллисекунду. А это - на порядок выше частоты реакции глаза (при 4-ех индикаторах). И на вопрос "нахрена так часто ?" отвечу - просто мне так удобно, т.к. во всех проектах имею системные миллисекундные тики.
К чему я это всё... А к тому, что реакция человека совсем тут не при чём. 10 мс. выбрано из соображений подавления дребезга, а не какой-нибудь физической возможности человека. Общепринятое время = ~10...20 мс.
Я делаю 20 мс. , проблем пока не было обнаружено, в т.ч. и с пром-устройствами.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Помогите опросить кнопку
СообщениеДобавлено: Ср фев 01, 2017 14:15:12 
Опытный кот
Аватар пользователя

Карма: 4
Рейтинг сообщений: 11
Зарегистрирован: Вт окт 23, 2012 13:17:25
Сообщений: 823
Откуда: Киселевск
Рейтинг сообщения: 0
Starichok51 писал(а):
Oxford писал(а):
будет постоянно вызывать опрос каждые 10мс.
учитывая время реакции человека, ты можешь объяснить, а на хера нужно так часто опрашивать кнопки?



Можно делать опрос и реже если не требуется быстрая реакция GUI на кнопки.

Можете настроить под ваше приложение дефайнами и периодом таймера.
#define DELAY_PRESS_BUTTON 5
#define BUTTON_REPEAT 50

Дело в том что у кнопки два состояния дребезга. Нажатие и отпускание. Время обработки кнопки увеличивается в двое.

В моем случае при таймере 10мс:
#define BUTTON_FILTER 2
#define BUTTON_REPEAT 20

Т.е. 20мс нажатие, 20мс отпускание 40мс обработка одного нажатия.
Если кнопка удерживается нажатой, работает авто повтор нажатий. При этом авто повтор имеет хорошую реакцию и период 200мс, авто повтор работает внутри алгоритма нажатия кнопки.
В итоге работает стабильно и с отличной производительностью. Без глюков, пропусков и прочих артефактов.

_________________
Инженер R@D

Telegram чат: https://t.me/radiowolf или в поиске приложения @radiowolf. Личка:@cncoxford


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Помогите опросить кнопку
СообщениеДобавлено: Чт фев 02, 2017 13:00:37 
Друг Кота
Аватар пользователя

Карма: 27
Рейтинг сообщений: 33
Зарегистрирован: Пн ноя 22, 2010 00:57:15
Сообщений: 6296
Откуда: Ukraine
Рейтинг сообщения: 0
а целесообразно ли включать програмно внутренние подтягивающие резисторы при наличие оных извне ?

_________________
Tell Me The Truth


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Помогите опросить кнопку
СообщениеДобавлено: Чт фев 02, 2017 13:39:00 
Ум, честь и совесть. И скромность.
Аватар пользователя

Карма: 97
Рейтинг сообщений: 2057
Зарегистрирован: Чт дек 28, 2006 08:19:56
Сообщений: 18024
Откуда: Новочеркасск
Рейтинг сообщения: 0
Медали: 2
Получил миской по аватаре (1) Мявтор 3-й степени (1)
FreshMan писал(а):
а целесообразно ли включать програмно внутренние подтягивающие резисторы при наличие оных извне ?
я бы ставил вопрос иначе: целесообразно ли ставить внешние резисторы при возможности подтянуть кнопку изнутри? и в подавляющем количестве домашних поделок-игрушек ответ был бы "нецелесообразно": дополнительные компоненты - это удорожание и усложнение.

в вашей же формулировке внутренние резисторы приведут лишь к небольшому увеличению потребляемого схемой тока, причем на мизерную величину. так что вопрос целесообразности не стоит - всё равно. или скажем так: будет подтяжка - не повредит, не будет - хуже не станет.

_________________
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

скушно, бабоньки!


Вернуться наверх
 
Показать сообщения за:  Сортировать по:  Вернуться наверх
Начать новую тему Ответить на тему  [ Сообщений: 321 ]     ... , , , 14, , ,  

Часовой пояс: UTC + 3 часа


Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 8


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

Найти:
Перейти:  


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
Extended by Karma MOD © 2007—2012 m157y
Extended by Topic Tags MOD © 2012 m157y