Я проверяю не абсолютное состояние контактов, а инверсию относительно того состояния порта, которое было при старте. Таким образом если мы опрашиваем несуществующий порт, нам неважно ноль там или единица.
Дальше все порты пробегаем и сравниваем с нейтральным положением, если в каком-то бите была инверсия, это определяется как повернутая палка, или нажатая кнопка. Инверсия чтобы удобно было ксорить со считанным значением и потом and-ить, это детали реализации.





Ответить с цитированием