Энкодер должен работать на пинах с прерываниями. Почитайте зачем они нужны. Простая аналогия - Вы играете или пишете документ, а процессор занят каким то фоновым или текущим приложением и ему "некогда" отслеживать что там нажато на клавиатуре или мыше.