Cuanto tiempo demora un PIC en realizar un comando programado en C

El problema que tengo es que tengo que realizar tareas que se demoren un cierto tiempo, o al menos me gustaría saber cuánto tiempo tarda en realizar las tareas que programo en C para pic, para poder aplicarle cierto tiempo de demora a otras tareas.

En ensamblador comprendo cómo sacar al tiempo conociendo el número de ciclos que tarda cada instrucción, pero en C, cuánto tarda en realizar un if por ejemplo.

¿alguien me puede decir dónde puedo conseguir esa información?
 
depende mucho del compilador en particular, puede ser variable para cada version.

Lo que podrias hacer es desensamblar la version .hex que te produce.
 
Lo mejor es utilizar el propio MPLAB para que te lo calcule simulandolo, en este momento no te puede decir exactamente que ventanita, es pero linux tiene esas cosas.


Revisa las herramientas de simulacion.
 
hola estamos haciendo un robot con motores que tienen un driver md30 controlado por i2c desde un pic 18f4520 tenemos problemas para leer y escribir el i2c ,no realiza las funciones ordenadas y creemos que tiene algo que ver con un led que tiene la placa que se llama busy y solo se enciende durante un segundo o dos durante los cuales el robot realiza una orden que le hemos ordenado depues se queda bloqueado en esa orden indefinidamente.
¿Conclusión alguien sabe que puede pasar con este led BUSY ?
 
Cada compilador genera un archivo con extensión .lst y .asm ahi puedes ver que instrucciones fueron generadas. Si lo compilas usando como IDE el MPLAB hay una opcion que te permite ver el codigo en assembler.

Pero lo ideal es que la parte de programa que deseas que se ejecute con presicion lo deberias hacer en assembler asi tu controlas el programa y no lo contrario que el programa quiere controlarte a ti.
 
Estoy utilizando una herramienta muy útil que trae el compilador PCWHD, no sé si tambien la traiga el MPLAB, es una herramienta llamada RTOS (sistema operativo de tiempo real), la cual permite realizar tareas con un determinado tiempo cada una. Es una herramienta muy útil y son tan solo unos 14 comandos los cuales vienen muy bien explicados en la ayuda y en ejemplos que trae el compilador.

Tambien estoy utilizando el archivo .lst para ver el código en ensamblador, y la duración específica de cada comando.

Muchas gracias.
 
Si deseas manejar los tiempos con precisión siempre debes realizarlo en asembler caso contrario no podrás hacer lo que desees.
Ya que todo compilador genera mas instrucciones que las que son necesarias y mucho mas el “Basic” que es un programa que facilita las cosas pero también te aparate del control directo del hardware y eso implica mas instrucciones por procesar.
 
Yo actualmente solo trabajo en asembler, y ya me han aconsejado en varias ocasiones que me pase al C, ya que lo hace todo mas facil, pero cuando tienes que realizar un trabajo de precision se requiere el asembler, asi que yo personalmente prefiero seguir haciendo las cosas dificiles y continuar en asembler.
Llega un momento que tienes ya una cierta cantidad de rutinas en asembler que las vas adaptando de unos proyectos a otros.
 
Sigo con el ASM, me aconsejan mucho el C porque es mucho más fácil y rápido. Ya me pasaré al C con el tiempo, no por ello abandonaré el ASM, es más aprenderé algo para los 18F.

Menos mal que en MPLAB hay directivas que también usan el IF ELSE, cosas de esas como el C.
 
Atrás
Arriba