-
- Чота с трудом понимаю мысль. Один проход ставит единички сэмпла, второй убивает эти единички новым сэмплом. Казалось бы, уйня с ненадежным исходом, но попробуем найти зерно. То есть в конце конца просто проверяется равенство двух последовательных Олдфаг(86 знак., 12.05.2017 20:08, )
- "Тогда почему не сделать просто буферный массив и сравнивать i-1 и i выборки?" - я именно это и делаю. - бомж(12.05.2017 22:21)
- Да, я и говорю. Но... сложновато. Сравнивать бы на равенство безо всяких логических оппераций. Это же классика антидребезга сравнивать пару последовательных выборок - Олдфаг(12.05.2017 22:36, )
- "Классика антидребезга" - это в каком монументальном труде прочитать? Наверное, целых 5 страниц. - SciFi(12.05.2017 22:46)
- Да, я и говорю. Но... сложновато. Сравнивать бы на равенство безо всяких логических оппераций. Это же классика антидребезга сравнивать пару последовательных выборок - Олдфаг(12.05.2017 22:36, )
- Для буфера регистров нужно "глубина буфера" штук, а счетчиков в 2^n меньше. Элегантная экономия на спичках - 1111111(12.05.2017 20:50)
- Здесь буфер это 12 байт. И сравниваться будет с таким же буфером input. Глубины то практицки нет. - Олдфаг(12.05.2017 21:25, )
- Тьфу. Туплю, в голове одно а пишу про другое. Я вот про эту методу гутарю >>> - 1111111(12.05.2017 21:39, ссылка)
- Скупой платит дважды! - SciFi(12.05.2017 21:01)
- Во времена PIC12С508 еще и не так раскорячивались :) - 1111111(12.05.2017 21:11)
- Здесь буфер это 12 байт. И сравниваться будет с таким же буфером input. Глубины то практицки нет. - Олдфаг(12.05.2017 21:25, )
- "Тогда почему не сделать просто буферный массив и сравнивать i-1 и i выборки?" - я именно это и делаю. - бомж(12.05.2017 22:21)
- Может, лучше словами? И что такое "input"? Пароль, введённый пользователем? Контрольная сумма какого-то пакета? Текущее время в формате BCD? Ключ шифра? - SciFi(12.05.2017 15:05)
- input[] содержит считанные входы. После вызова функции входы в input[] свободны от дребезга. В одном проекте я опрашиваю 96 кнопок и с помощью подобной функции "отфильтровываю" дребезг. бомж(210 знак., 12.05.2017 15:28)
- Всё равно ничего не понятно, но ладно. - SciFi(12.05.2017 15:32)
- Ладно, упростим для ясности: бомж(302 знак., 12.05.2017 15:51)
- До конца не понял. Понял только, что опрашиваем каждые 10 мс, результат фильтра получаем каждые 20 мс, и фильтр видит только 2 последовательных значения. Уже какая-то экзотика получается. Кому это надо? Чем лучше, чем просто опрашивать каждые 20 SciFi(21 знак., 12.05.2017 16:04)
- За 10 мс состояние контактов устаканивается и можно считать, что кнопка нажата. Если же это была помеха, она отфильтровывается. Если просто опрашивать каждые 20 мс, можно эту помеху или звон словить. - бомж(12.05.2017 16:12)
- Тут уж каждый сам для себя решает. Но выглядит это экзотично и нетрадиционно. - SciFi(12.05.2017 16:16)
- Зато работает железно в индустриальных решениях. - бомж(12.05.2017 16:30)
- Просто я подозреваю, что тупо опрос каждые 20 мс без фильтрования работал бы так же железно. Но кто будет тестировать, чтобы всего лишь доказать мою правоту? :-) - SciFi(12.05.2017 16:33)
- В момент нажатия кнопки (2 - 5 мс) она дребезжит. И без фильтрования этот дребезг будет считан, словно кнопка была нажата дважды, а то и больше раз. Мой наипростейший гениальный (не побоюсь этого эпитета:) алгоритм такой дребезг чётко фильтрует. бомж(153 знак., 12.05.2017 16:46 - 16:51)
- Мальчики и девочки, в качестве домашнего задания подумайте, почему опрос с периодом 20 мс устраняет проблему дребезга с длительностью 5 мс. Ну а про помехи - вам виднее, у меня их нет. - SciFi(12.05.2017 16:52)
- А у меня помехи есть. Про дребезг же я написал, поскольку опрос можно делать не только лишь через 10мс. Можно опрашивать значительно чаще :-) - бомж(12.05.2017 16:59)
- Ну да, можно каждую микросекунду. И на ассемблере - чтобы оптимально. А нефиг процессору простаивать, пусть делом занимается :-) - SciFi(12.05.2017 17:07)
- Хорош гнать. Есть пром. оборудование, у которого кнопки нажимаются "медленно и печально" раз в год. Там опрос через 100 мс применял + RC фильтр 20 кОм 1 мкФ. Там, где пользователь может до 15...20 раз/c нажать - не прокатит Ваш "чудо метод" - AU08(12.05.2017 17:15)
- Хз как в промоборудовании кнопки, а на обычные тактовые стараюсь сделать реакцию не медленнее 50мс. Выбешивае когда индусы делают говно невосприимчивое к коротким тычкам. Надо не просто тыкнуть, а еще и не быстрее чем! На посудомойке у меня вобще 1111111(244 знак., 12.05.2017 21:48)
- Я не гоню, я стебусь :-) - SciFi(12.05.2017 17:19)
- Я тоже :-) Но только я стебусь аргументативнее - бомж(12.05.2017 17:22)
- Так ведь, иногда надо что-то отличное от кнопок управления опрашивать, например, концевики. И быть уверенным, что концевик действительно сработал, а не помеха проскочила. - бомж(12.05.2017 17:14)
- Хорош гнать. Есть пром. оборудование, у которого кнопки нажимаются "медленно и печально" раз в год. Там опрос через 100 мс применял + RC фильтр 20 кОм 1 мкФ. Там, где пользователь может до 15...20 раз/c нажать - не прокатит Ваш "чудо метод" - AU08(12.05.2017 17:15)
- Ну да, можно каждую микросекунду. И на ассемблере - чтобы оптимально. А нефиг процессору простаивать, пусть делом занимается :-) - SciFi(12.05.2017 17:07)
- А у меня помехи есть. Про дребезг же я написал, поскольку опрос можно делать не только лишь через 10мс. Можно опрашивать значительно чаще :-) - бомж(12.05.2017 16:59)
- Мальчики и девочки, в качестве домашнего задания подумайте, почему опрос с периодом 20 мс устраняет проблему дребезга с длительностью 5 мс. Ну а про помехи - вам виднее, у меня их нет. - SciFi(12.05.2017 16:52)
- В момент нажатия кнопки (2 - 5 мс) она дребезжит. И без фильтрования этот дребезг будет считан, словно кнопка была нажата дважды, а то и больше раз. Мой наипростейший гениальный (не побоюсь этого эпитета:) алгоритм такой дребезг чётко фильтрует. бомж(153 знак., 12.05.2017 16:46 - 16:51)
- Просто я подозреваю, что тупо опрос каждые 20 мс без фильтрования работал бы так же железно. Но кто будет тестировать, чтобы всего лишь доказать мою правоту? :-) - SciFi(12.05.2017 16:33)
- Зато работает железно в индустриальных решениях. - бомж(12.05.2017 16:30)
- Тут уж каждый сам для себя решает. Но выглядит это экзотично и нетрадиционно. - SciFi(12.05.2017 16:16)
- За 10 мс состояние контактов устаканивается и можно считать, что кнопка нажата. Если же это была помеха, она отфильтровывается. Если просто опрашивать каждые 20 мс, можно эту помеху или звон словить. - бомж(12.05.2017 16:12)
- До конца не понял. Понял только, что опрашиваем каждые 10 мс, результат фильтра получаем каждые 20 мс, и фильтр видит только 2 последовательных значения. Уже какая-то экзотика получается. Кому это надо? Чем лучше, чем просто опрашивать каждые 20 SciFi(21 знак., 12.05.2017 16:04)
- Ладно, упростим для ясности: бомж(302 знак., 12.05.2017 15:51)
- Всё равно ничего не понятно, но ладно. - SciFi(12.05.2017 15:32)
- input[] содержит считанные входы. После вызова функции входы в input[] свободны от дребезга. В одном проекте я опрашиваю 96 кнопок и с помощью подобной функции "отфильтровываю" дребезг. бомж(210 знак., 12.05.2017 15:28)
- Чота с трудом понимаю мысль. Один проход ставит единички сэмпла, второй убивает эти единички новым сэмплом. Казалось бы, уйня с ненадежным исходом, но попробуем найти зерно. То есть в конце конца просто проверяется равенство двух последовательных Олдфаг(86 знак., 12.05.2017 20:08, )