Цитата(Victor® @ Aug 1 2011, 11:40)

имея вероятность 10% напороться на грабли.
не очень понял Вашу мысль про грабли, но попробую объяснить свое понимание проблемы.
Есть кнопка, поключенная ко входу. Человек, довольно редко нажимает на кнопки.
Предположим вход подтянут резиком к питанию, при замыкании кнопки вход оказывается в нуле.
Таким образом, сигнал с дребезгом контакта получается на входе вот такой:
11111111111111111111111111111111110110101110101100000000000000000000000000
--------не нажата--------------->|<--дребезг--->|<----------кнопка нажата
__^____________________^____________________^____________________^_______
редкий опрос
ИМНО, период опроса кнопки просто должен быть много больше длительности дребезга.
Даже если ОДИН момент опроса попадет внутрь интервала с дребезгом - это нормально.
При этом, что будет считано? Ноль или единица? - это не важно.
Если момент опроса в попадает в интервал дребезга и читается 0, то считаем, что нажали кнопку. Ну и правда, ведь нажали? Значение входа сейчас установится и будет стабильный ноль.
Если попали в интервал дребезга и считали 1, тоже нормально, считаем, что кнопка не нажата (ну и в самом деле - нажали не очень хорошо - контакт плохой). Уже следующий poll даст стабильный 0 и тогда уж точно определим нажатие кнопки.
При таком подходе точность определения момента нажатия определяется периодом опроса, но в большинстве случаев с кнопками это вполне приемлимо.
Всякие альтернативные методы в принципе тоже имеют свой "период фильтрации", только другие методы сложнее в реализации и требуют больше логики.