TODOPIC

Microcontroladores PIC => Lenguaje C para microcontroladores PIC => Mensaje iniciado por: josebaorza en 15 de Mayo de 2012, 16:12:26

Título: calcular cada cuanto se ejecuta una rutina
Publicado por: josebaorza en 15 de Mayo de 2012, 16:12:26
Hola a todos. Si se realiza un programa con C PIC Compiler y se simula en proteus, hay alguna manera de saber cada cuantos ms ocurre un evento?
 El programa es bastante lago y complicado .He de hacer una modificación en él.
La cuestión es que con un 16f876 y mediante PWM manejo sendo led de alta potencia (previo paso por una etapa de potencia) y se da una caída de tensión de mas o menos 1v(dependiendo si enciendo 1 o 2 led). Por otro lado, mido el estado de las baterías con uno de los   convertido A/D y queda reflejado esas variaciones. Total que me vuelven loco. He probado infinidad de cosas para eliminar esa caída de tensión, pero es intrínseco al circuito. (o yo demasiado tonto :lol:)

Lo que se me ha ocurrido es, dado que genero una señal de 244Hz, hacer en vez de mediciones putuales, una tirada de mediciones durante mas o menos 4,5ms (tiempo de la señal) y quedame con la de mas valor. Según el osciloscopio aunque poniendo de duty cycle al 99% queda una pequeña franja en la que no cae la tensión.

Problema no se cada cuando leo el convertido AD, ya que no se lo que tarda el programa en ejecutarse. Esa es mi pregunta. Si fuese corto el programa lo posteaba, pero……

Agradecería cualquier ayuda al respecto, sobre todo si hay alguna herramienta en proteus.

PD el 16f876a va a 4 MHz

muchas gracias a todos
Título: Re: calcular cada cuanto se ejecuta una rutina
Publicado por: tannke en 15 de Mayo de 2012, 17:01:47
Una manera sencilla si dispones de alguna salida del pic es cambiar de estado esa salida cada vez que pases por el punto que quieres (ej. donde haces la lectura del adc) y a esa salida le conectas el osciloscopio, listo.

Un saludo
Título: Re: calcular cada cuanto se ejecuta una rutina
Publicado por: josebaorza en 16 de Mayo de 2012, 05:32:18
simple y sencillo, me gusta :D.
pues voy a hacer la prueba. muchas gracias por tu respuesta
Título: Re: calcular cada cuanto se ejecuta una rutina
Publicado por: MerLiNz en 16 de Mayo de 2012, 08:25:09
El proteus abajo te indica el tiempo, le pones un breakpoint, le das al play y ves cuanto tarda en ejecutarse todo el codigo hasta llegar al breakpoint
Título: Re: calcular cada cuanto se ejecuta una rutina
Publicado por: jukinch en 17 de Mayo de 2012, 20:02:00
también podés usar el stopwatch de mplab.
http://www.todopic.com.ar/foros/index.php?topic=29264.0
Título: Re: calcular cada cuanto se ejecuta una rutina
Publicado por: josebaorza en 18 de Mayo de 2012, 06:53:14
bueno, mil gracias por todas las respuestas. La verdad que me ha funcionado muy bien cambiar de estado de un pin del pic y simularlo. Facil, sencillo y muy practico. no se me hubiera ocurrido. ((:-))

Tras hacer varias pruebas, he visto que mas o menos cada 25,37ms se lee el ADC (16f876a a 4MHz) uuuuuuuuuuuuuuuuu¡¡¡¡¡, muy lejos de los 4,5ms del periodo de la señal PWM. no se por que yo pensaba que me iba a dar 25us. iluso de mi. dentro de todo el código hay varios delay......, por lo que aun que duplique o triplique la frecuencia de rejoj del daria igual.

bueno os tendré informados. gracias