TODOPIC
Microcontroladores PIC => Lenguaje C para microcontroladores PIC => Mensaje iniciado por: Algec en 31 de Agosto de 2008, 14:36:07
-
He realizado un lector de posicion para los tres ejes de mi fresadora, con tres encoders y un display LCD, que funciona bastante bien.
Como trabaja con tres encoders por 6 entradas del puerto B no he utilizado la interrupcion por cambio de estado ya que me es imposible, asi que decidi usar la interrupcion por rebose del copntador y vigilar el cambio de estado de las entradas para hacer el conteo.
Lo que quisiera es optimizar el soft para ganar mas velocidad ya que si aumento mucho la velocidad de los encoders me genera fallos de lectura. He estado jugando con los tiempos del timer pero esto es lo maximo que he conseguido sin que genere fallos.
Os pego el Proteus y el codigo y a ver que puedo hacer para arreglarlo.
-
He mejorado algo la velocidad pero necesito saber y no se como hacerlo, cuanto tiempo tarda en ejecutarse una rutina larga, en este caso la de interrupcion, para ajustar el rebose del contador y dejar tiempo para que ejecute el resto del programa, porque si no siempre esta en la interrupcion y nunca acaba.
Es decir, ¿como saber cuantos milisegundos tarda en ejecutarse el codigo de la rutina de interrupcion sin tener que andar calculando en ensamblador, (ya que es un codigo larguisimo)?
Gracias por la ayuda
-
Hola Algec.
Se me ocurre una idea, pero necesitarias un osciloscopio. y es "togglear" un pin al inicio y al final de la rutina a la cuál quieres saber el tiempo. Es mejor averiguarlo en físico que haciendo suposiciones con el simulador.
-
¿Porqué no usas el MPLAB? con él se podría.
Un saludo