У кнопки три положения, 1. земля, 2. +5V , и 3. обрыв
Теперь, в третьем состоянии нужно исключить случайности и контролировать ножку во времени.
Сначала была идея завести на ножку шим на полчастоты процессора, и трижды опрашивать ее состояние, запоминать и сравнивать значение бита в регистре порта.
Тогда земля или +5 подавляли бы шим, и мы получили бы неизбежную последовательную комбинацию или для 1. 0,0,0 или для 2. 1,1,1 или для 3. Hi-Z 1,0,1 либо 0,1,0.
Ну или наоборот, частота ШИМ в три раза ниже, а ножку опрашивать 4 раза, вооощем нужно сравнение чет и нечет.
Таким образом мы могли бы четко определять третье состояние кнопки в обрыве. В другой автомобильной конфе, где где используют Атмегу, мне ответили, что чип не способен надежно принимать высокочастотный сигнал. Вникать в атмегу мне не по силам, и не хочется, хочу спросить про PIC.
Что если ШИМ заменить программой?
Я читал предупреждение про read and write modificftion , но если я правильно понял, там речь только про операции с битами. А что будет, если целиком регистр порта записывать типа MOV F ?
Что будет, если ножка сидит на земле, мы в порт принудительно прописываем 1, а потом считываем состояние порта? Там будет 1 или 0 ?


