Анти дребезг для кнопок с разным назначением.

Тема в разделе "Arduino & Shields", создана пользователем Timon333, 23 мар 2019.

  1. Asper Daffy

    Asper Daffy Иксперд

    Неправильный подход, дед! Если уж вешаться, то на кабеле питания (в розетку) дешевле, чем за 15 тыров. Всё равно он больше ни на что не годен, спроси любого хифилиткиа :)
     
  2. DetSimen

    DetSimen Guest

    Ну отчего же, по нему хифи по ухам разливается, наполняя "литика" блаженством.
     
  3. DetSimen

    DetSimen Guest

    А холопам, лямбды не знающим, всё равно на чём висеть, на золотом проводе или простом обтрёпанном вервии.
     
  4. qwone

    qwone Гик

    Когда используешь указатели на функцию, то нужны функции которые присваиваешь указателям. При больших проектах этих функций дофига и названия этих функций засоряют глобальное простанство программы . Вот названия решили убрать . Получились функции без названий. Конечно там решали какие переменные должны быть видны, а какие нет. Но это все больше теория. А на практике просто подобрать что видно, а что нет.
     
  5. DIYMan

    DIYMan Guest

    Нет, квон, это не просто теория. Введение лямбда-выражений в С++ - это бооольшущий скачок вперёд. Про контексты, захват, изменение захваченных переменных, автогенерацию возвращаемого значения, да ту же локальную инкапсуляцию - тебе рассказывать, или не надо? Это не просто указатели на анонимный функтор, тащемта - там есть кучу плюшек, которые при работе над серьёзным проектом позволяют сильно проще отделять мух от котлет.
     
  6. qwone

    qwone Гик

    DIYMan, вот как раз из=за большого кол-ва плюшек , народ буквально боится использовать лямды. Так что пусть хотя бы просто начнет использовать лямды хотя бы в меню. Что уже как неплохой тортик получится.
    ПС: Да что далеко ходить ,вот ТС еще не усвоил как бороться с дребезгом программным путем. А хотелки его до меню достигли.
     
  7. znamen

    znamen Guest

    Где бы почитать о недостаточности гистерезиса цифрового входа? Что действительно существует такой
    термин? Или сами придумали?
     
  8. qwone

    qwone Гик

    Есть плата , есть провод , есть кнопка с RC цепочкой. А есть постороняя наводка на провод с достаточной амплитудой. Кнопку нажили отпустили и начался медленный подъем уровня. Нет наводки то на каком-то уровне, щелк и перещелкнуло. А при наводке + каком-то подымающем уровне дребезг если уровень наводки будет больше реального гистерезиса перещелкивания входа, если конечно он там есть.
     
  9. znamen

    znamen Guest

    А.
     
  10. Asper Daffy

    Asper Daffy Иксперд

    Ну, так, значит так. После "пространства имён - разновидность классов", я уже ничему не удивляюсь :)
    Да, вот только там они нафиг не нужны - за уши притянуты.

    Давай вообще откажемся от функций с именами и будем использовать только анонимные! Прогресс будет, абалденный! :)
     
    カオナシ нравится это.
  11. カオナシ

    カオナシ Нерд

    Почитал тему - про программное и аппаратное устранение дребезга - это примерно как битва
    между тупоконечниками и остроконечниками :) в известном произведении.

    ИМХО - аппаратное пришло из чистой логики. Когда не использовались процессоры, и это был единственный вариант.
    Когда появились процессоры - появилась альтернатива, и все зависело от загруженности процессора
    и от возможности установки дополнительных компонентов.

    КМК, если есть возможность - проще решить вопрос программно.
    На хрена эти кондеры, которые могут и емкость потерять в будущем.

    Посмотрел предложенный вариант в плане вопроса программной реализации.
    По аппаратной реализации нет вопросов.
    "Основной" предложенный, программный вариант - ну не реально длинный. Есть проще.
    "An Alternative" - хороший вариант, и даже очень неплох, для пары кнопок.
    Его можно легко доработать, чтобы отпускание кнопки тоже обнаруживалось.
    Тогда можно будет обрабатывать длительность нажатия.
    Но для большего кол-ва, к примеру трех и более - есть варианты лучше.
     
  12. Daniil

    Daniil Гуру

    Делитесь, не стесняйтесь) Эта тема уже клад, прошу пополнить.
    Почему решение должно быть одно? Только кондер или только программно? Причём за то, что только что-то одно голосуют, как я назову "цифровики". Противоположные им "аналоговики", не отрицают возможность программной фильтрации.
    Аргументация любопытна - кондеры плывут, тау считать. Как-будто цена программиста дешевле)
     
  13. カオナシ

    カオナシ Нерд

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

    Asper Daffy Иксперд

    Керамические конденсаторы (если не в гараже сделаны) практически вечные.
     
    Daniil нравится это.
  15. カオナシ

    カオナシ Нерд

    Но их нужно ставить, чтобы освободить не занятый процессор?
     
  16. Asper Daffy

    Asper Daffy Иксперд

    «Все истинно верующие да разбивают яйца с того конца, с какого удобнее»
     
  17. Asper Daffy

    Asper Daffy Иксперд

    Ну, мы-то с тобой не боимся, правда? У меня есть идея, давай, ты, как продвинутый чел, будешь везде, вместо лоховского
    Код (C++):
    #define  pinRelay   10
    ...
    pinMode(pinRelay, OUTPUT);
    использовать продвинутую конструкцию с лямбдой
    Код (C++):
    auto pinRelay = [] { return 10; };
    ...
    pinMode(pinRelay(), OUTPUT);
    Пихай это везде и пачёт и уважуха среди поцанов гарантированы!
     
    DetSimen и DIYMan нравится это.
  18. Unixon

    Unixon Оракул Модератор

    Есть один очень хороший, но относительно дорогой способ делать аппаратный антидребезг - использовать для этой цели монитор питания (он же микроцессорный супервизор, он же формирователь импульса сброса). Его логика работы наиболее близка к программному антидребезгу, хоть это больше похоже на "из пушки по воробьям".
     
    Последнее редактирование: 23 мар 2019
  19. カオナシ

    カオナシ Нерд

    2 Qwone. Понятное дело, что, когда есть большой групповой проект - это хороший инструмент!
    Но когда не такой большой :), и пишется одним "писателем" и под микроконтроллер, это нужно?
    Без теории о правильности кода. :)
     
  20. qwone

    qwone Гик

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