Autor Tema: calcular cada cuanto se ejecuta una rutina  (Leído 1802 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado josebaorza

  • PIC10
  • *
  • Mensajes: 6
calcular cada cuanto se ejecuta una rutina
« 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

Desconectado tannke

  • PIC16
  • ***
  • Mensajes: 176
Re: calcular cada cuanto se ejecuta una rutina
« Respuesta #1 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

Desconectado josebaorza

  • PIC10
  • *
  • Mensajes: 6
Re: calcular cada cuanto se ejecuta una rutina
« Respuesta #2 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

Desconectado MerLiNz

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 2463
Re: calcular cada cuanto se ejecuta una rutina
« Respuesta #3 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

Desconectado jukinch

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 608
Re: calcular cada cuanto se ejecuta una rutina
« Respuesta #4 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
"Divide las dificultades que examinas en tantas partes como sea posible para su mejor solución." -René Descartes

Desconectado josebaorza

  • PIC10
  • *
  • Mensajes: 6
Re: calcular cada cuanto se ejecuta una rutina
« Respuesta #5 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