Utilizo un encoder incremental en cuadratura en un dispositivo mecánico rotativo y lo he conectado a los pines TIM3_CH1 y TIM3_CH2 del temporizador en modo encoder. He establecido el pin TIM3_CH3 como salida PWM para generar un pulso en cada período de contador TIM3- > CNT en este caso en cada 400 pulsos para generar un pulso PWM con 100 pulsos (25% de ciclo de trabajo).
El problema está en la mecánica en la que se monta la rueda del codificador. Este dispositivo mecánico tiene algo de retroceso y, a veces, cambia la dirección de rotación a CW (rebote).
Necesito evitar que dos pulsos PWM estén en la misma posición debido a un juego mecánico (rebote), los pulsos PWM de TIM3_CH3 deben distribuirse a intervalos regulares (distancia) y nunca debe haber dos pulsos en la misma posición (al mismo lugar) mientras usa el dispositivo láser para escanear la superficie, no debe medir dos puntos en la misma posición.
¿Es alguna solución hacer que funcione con algunos temporizadores, eventos o combinando más temporizadores para evitar la codificación y ejecución en la CPU, para evitar que el pulso se repita en el mismo lugar, es decir, cuando la rueda se mueve debido a la reacción de retroceso? ¿Recordar la posición anterior y no vuelve a dar impulso cuando vuelve a la posición anterior?