Hola Modulay
Lo que hago es usar dos interrupciones, una para generar la señal de control del motor y otra para la adquisición de datos. Utilizo el timer0 para el motor y el timer1 para la adquisición. Probé la función de adquisición por separado y usando unos leds para ver el tiempo de ejecución en el osciloscopio y pues se tarda como 4ms en realizarla, y pues por eso yo creo que en ocasiones tengo pulsos en alto de más duración que otros. Me dijeron que si hacía ese código en ensamblador tal vez me podría ahorrar más tiempo.
O tal vez usando datos de tipo int y no de tipo long pero eso ya dependería de la resolucion que quisiera no?? Bueno, espero me echen una mano con consejos que yo me encargo de lo demás. Gracias.