Una gran cantidad dependerá de la configuración de su motor / codificador, que no haya especificado. Digamos (solo como punto de partida) que el eje de su motor puede funcionar a un máximo de 600 rpm (10 rps) y su codificador produce 64 pulsos por canal. Es decir, si ejecuta el eje a 10 rps, obtendrá una onda cuadrada de 640 Hz en cada canal.
Al usar un codificador de cuadratura, puede derivar 4 veces más eventos de posición, correspondientes a los bordes ascendentes y descendentes de los dos canales, para una resolución de eje de 256 puntos por revolución, o 2560 puntos por segundo.
Tampoco ha proporcionado una especificación de la placa del procesador, pero digamos que permite 4 canales de entradas digitales. Luego puede mirar tanto los canales de su codificador como también un par de canales que tienen versiones invertidas de sus líneas de codificador. Ahora puede escribir su software para generar una interrupción en cada uno de los bordes ascendentes de las 4 entradas. En cada interrupción, examina las dos líneas del codificador y determina la posición local. Al mismo tiempo, lee su reloj en tiempo real para determinar el tiempo transcurrido desde el último tictac del codificador, y de ahí determina la velocidad del eje. ¿Puedes hacer eso en (digamos) 1/10 del tiempo entre tics? Eso es 40 usec. Además, tendrá que encontrar alguna forma de evitar que otras interrupciones anulen las rutinas de su codificador por más de 400 usec. Si no lo hace, perderá la información de la posición y cualquier proceso que impida la medición del intervalo de tiempo inmediato arruinará el cálculo de la velocidad del eje.
Con solo una pequeña cantidad de hardware (un par de compuertas OR exclusivas y un retardo RC) puede producir una sola entrada que generará interrupciones para las cuatro transiciones del codificador, por lo que podría salirse con 3 entradas digitales.
Si la frecuencia de transición es baja, como dice Wouter van Ooijen, puede probar simplemente encuestando las salidas del codificador, pero tenga en cuenta que esto generará incertidumbres en los cálculos de velocidad del eje, especialmente si su procesador está haciendo cualquier otra cosa que pueda tener. mayor prioridad, y cualquier incertidumbre de este tipo degradará su capacidad de mantener un perfil de velocidad deseado, trapezoidal o de otro tipo.
En general, te aconsejo que escuches a Spehro.