Здравствуйте. Нужно сделать схему которая считала бы количество оборотов некого диска с лепестками, причем когда он крутиться в одну сторону - суммировать, а когда в другую - вычитать. Решил использовать сдвоенный фототранзистор от мышки. Диск когда крутиться прерывает своими лепестками луч, и один из фототранзисторов замечает это раньше, а в другую сторону наоборот. Когда луч попадает на фототранзистор на вход МК поступает лог.1, а когда он прерывается - лог.0.
Подскажите пожалуйста логику опроса выводов. Внешние прерывания использовать не могу, эти ножку уже задействованы в схеме, надо использовать обычные порты. И только при полном проходе лепестка диска через 2 фототранзистора инкриментировать или декриминтировать некую переменную, чтоб исключить ложные срабатывания при дергании диска на месте.
Т.е. когда состояние портов измениться в порядке: 11 01 00 10 11 - инкриментировать, а когда 11 10 00 01 11 - декриментировать. Что-то никак не могу додуматься как это реализовать программно, на Си.
Раздел: AVR
Подскажите пожалуйста логику опроса выводов. Внешние прерывания использовать не могу, эти ножку уже задействованы в схеме, надо использовать обычные порты. И только при полном проходе лепестка диска через 2 фототранзистора инкриментировать или декриминтировать некую переменную, чтоб исключить ложные срабатывания при дергании диска на месте.
Т.е. когда состояние портов измениться в порядке: 11 01 00 10 11 - инкриментировать, а когда 11 10 00 01 11 - декриментировать. Что-то никак не могу додуматься как это реализовать программно, на Си.
Раздел: AVR