yuraneo
Хммм... Может я слишком бегло глянул. Но вообще-то правильно опрашивать кнопки: с накоплением состояния за несколько опросов (например, минимально 5 опросов, по количеству 1 и 0 в этих 5-ти опросах решать нажата кнопка или нет), и после этого передавать полученное состояние на программный триггер Шмидта. Тогда дребезг и случайные выбросы гарантированно исключаются.
Ресурсоёмко это получается. Для скорости реакции, нужно часто опрашивать. Постоянно. При чём реально кнопка нажата бывает очень редко. Иницировать опрос по прерыванию, это возможно.