Обработка нажатия кнопки

Тема в разделе "Arduino & Shields", создана пользователем UnSstrennen, 15 авг 2018.

Метки:
  1. UnSstrennen

    UnSstrennen Нерд

    Трям
    В блоке управления две кнопки (на прерываниях). Тут обычная проблема: когда тыкаешь на кнопку, Ардуино воспринимает тычок как несколько нажатий. Как это побороть? delay после обработки нажатия, как мы знаем, использовать нельзя, т.к. это прерывание. Как сделать так, чтобы не убирая прерывания ардуина воспринимала тык как одно нажатие?

    Поднимать флаг в прерывании не получится, т.к. требуется моментальная реакция на тычки пользователя, а основной цикл нагружен долгими процессами
     
  2. UnSstrennen

    UnSstrennen Нерд

    Ах да, ещё проблема дребезга кнопки устранена при помощи конденсатора
     
  3. Как устранена, когда вы в первом сообщении описываете проблему дребезга?
    Ставите флаг и игнорируете последующие срабатывания. Нагрузка цикла тут совершенно не при чем.
     
    parovoZZ и UnSstrennen нравится это.
  4. parovoZZ

    parovoZZ Гуру

    Опрашивать кнопки по таймеру. Прерывание убрать.
     
  5. ostrov

    ostrov Гуру

    После первого ьычка не опрашивать тычки 20-50 мс.

    И на что такая реакция требуется что несколько мс имеют значения? Палец дольше на кнопке плющится пока нажмет ее.
     
    Un_ka и parovoZZ нравится это.
  6. Mitrandir

    Mitrandir Гуру

    Нажралась кнопка, сработало прерывание. Смотрим, если предыдущее прерывание было за N миллисекунд до текущего времени просто выходим с прерывания.
     
    Andrey12 и SergeiL нравится это.
  7. SergeiL

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

    Ыыыы :D:D
     
  8. DetSimen

    DetSimen Guest

    ненуачо, кнопке жрать то не надо штоли? Вот так сначала морют голодом бедные кнопки, а потом жалуюца, то оне дребежжят, то срабатывают плохо. Перекармливать, правда, тоже плохо, их пучит потом.
     
    Un_ka, Andrey12, arkadyf и 4 другим нравится это.
  9. uldin

    uldin Нуб

    561 серию можно
     

    Вложения:

  10. SergeiL

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

    Можно, но зачем?
    Процессор не занят, зачем добавлять внешние элементы???
    Дребезг отсеивается на раз, программно.
    Вариантов решений много, часть здесь, на форуме, обсуждалась.
     
    Un_ka и parovoZZ нравится это.
  11. vector99

    vector99 Гик