¿Es este codificador rotatorio uno con salidas en cuadratura?
¿Este está conectado a un motor rápido o al que un usuario gira un simple botón?
Si se trata de un codificador en cuadratura conectado a un dispositivo rápido, abandone la idea de monitorear el codificador directamente muestreando un par de pines GPIO a través de una interrupción de temporizador. En su lugar, use una MCU que tenga un hardware de contador / temporizador específicamente diseñado para capturar y decodificar las formas de onda en cuadratura.
Por otra parte, si el codificador es uno de estos dispositivos de interfaz de usuario de baja resolución con un recuento de PPR de menos de un centenar, entonces es posible diseñar un sistema de muestreo de interrupciones controlado por temporizador que pueda monitorear las entradas de cuadratura en un par de pines de puerto. Tenga en cuenta que estos tipos de codificadores rotativos de bajo costo a menudo usan contactos de limpiaparabrisas en el interior que requerirán un rebote similar al de los contactos de interruptor normales. Esto afectará a la velocidad máxima con la que puedes decodificar y contar los pulsos de cuadratura.
He tenido éxito con el uso de una máquina de estado de interrupción de temporizador de 1 ms para descodificar codificadores de interfaz de usuario de descodificación con 32 y 64 PPR, incluido el rebote. Por supuesto, si se trata de un dispositivo que no gira libremente y que no se mueve libremente, es posible que las señales de cuadratura lleguen más rápido de lo que una interrupción de 1 KHz puede continuar si el usuario le da a la perilla o al eje un giro muy rápido.