Autor Tema: Contar pulsos con RTCC en RA4  (Leído 2591 veces)

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

Desconectado droky

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 628
    • Diseños radikales libres
Contar pulsos con RTCC en RA4
« en: 18 de Noviembre de 2007, 16:45:24 »
Hola, necesito contar pulsos usando algun tipo de interrupcio, para saber los que van ocurriendo mientras se ejecuta una porcion de codigo del programa.
He buscado y rebuscado, pero nada se adapta a lo que necesito.
El caso es que no me parecia tan complicado, pero a la hora de montarlo y ver en el osciloscopio, nada era lo que debia ser. Lo intenté con la simulación por si el error estaba en la señal que generaba los pulsos, pero el resultado era el mismo.
A ver si me podeis echar una mano.
El asunto es:
Tengo una señal que me envia pulsos a una frecuancia aproximada de 250Hz ( una señal cuasisenoidal sin semiciclo negativo )
Necesito ejecutar una porción de código que cuando termine, vuelva a repetirse, pero siempre en un intervalo de 8 ciclos de la señal de referencia.
Es decir, espero un pulso , ejecuto el código y cuando termine tengo que saber cuantos pulsos han pasado por RA4 para esperar hasta el pulso nº 8 y volver a ejecutar el código otra vez y así siempre.
El caso es que no soy capaz de contar los pulsos por RA4 durante la ejecución del código. Pensaba que con el contador de RTCC podría hacerlo, pero los resultados son desfavorables.
Este es el código :
Código: [Seleccionar]
#include <stdlib.h>
  #ZERO_RAM
  #byte  LEDS = 0x06   // PORTB
  #define bobina  PIN_A0  //Entrada señal

  int   cnt4;
  int flancos;
 
 


 
void main()
{
   set_rtcc(0);
   setup_counters(RTCC_EXT_H_TO_L,RTCC_DIV_1);
   setup_timer_1(T1_DISABLED);
   setup_timer_2(T2_DISABLED,0,1);
   setup_comparator(NC_NC_NC_NC);
   setup_vref(FALSE);

   SET_TRIS_B(0b00000000);
   SET_TRIS_A(0b00010000);

   flancos = 0;

   While (1)
    {
         cnt4 = 0;
         while (cnt4<221)
            {
                 // Aqui iria el código a ejecutar

                     LEDS = 0b11111111;
                     delay_us(100);
                     LEDS = 0;
         
              cnt4++;
            }
         flancos = get_rtcc();   // Veo cuantos pulsos han pasado
         while (flancos<8)
         {
           flancos = get_rtcc();  // Espero hasta el pulso nº8
         }
          set_rtcc(0);              // Reinicio el rtcc
         
       
    }
   

}

En este caso solo pretendo en un intervalo de 8 pulsos ( es que la frecuencia de referencia puede variar, no es 250Hz exacta, puede ser de 150 Hz a 280Hz, pero lo habitual es que sea 250 Hz ) enviar un tren de 221 pulsos 1010101010....... para ver el resultado en el osciloscopio.

A ver si me podeis ayudar.

Gracias y salu2
Yo... he visto cosas que vosotros no creeríais... atacar naves en llamas más allá de Orión, he visto rayos C brillar en la oscuridad cerca de la puerta Tannhäuser.
Todos esos momentos se perderán en el tiempo como lágrimas en la lluvia.
Es hora de morir.

Si me buscas en twitter, me tienes por @radikaldesig

Desconectado jfh900

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 3595
Re: Contar pulsos con RTCC en RA4
« Respuesta #1 en: 18 de Noviembre de 2007, 17:08:04 »
Prueba a poner un trigger smith entre la señal y la entrada RA4, como por ejemplo el 40106. Eso te conformará la onda y te la convertirá en cuadrada. Si sigue sin funcionar, podrías poner la simulación junto con el programa para poder probarlo.

Un saludo
* Cuando hables, procura que tus palabras sean mejores que el silencio.
* 'Todos somos ignorantes, lo que ocurre es que no todos ignoramos las mismas cosas.' Albert Einstein.
* No hay nada peor que un experto para evitar el progreso en un campo
* "La vida es como una novela. No importa que sea larga, sino que esté bien narrada" Seneca
* La vida no se vive por las veces que respiras, sino por los momentos que dejan sin aliento.
* Dios dijo: ∇·E=ρ/ε0 ; ∇·B=0 ; ∇xE=-dB/dt ; ∇xB= μ0ε0dE/dt..y la luz se hizo..!!..

Desde España Jesús

Desconectado droky

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 628
    • Diseños radikales libres
Re: Contar pulsos con RTCC en RA4
« Respuesta #2 en: 20 de Noviembre de 2007, 12:30:47 »
Hola, ya lo he conseguido.
Lo he solucionado con una resistencia de Pull-UP en RA4.
Gracias jfh800 por la pista que me hizo pensar un poco más.
Una captura de la señal:



Y más ampliado:



Salu2
Yo... he visto cosas que vosotros no creeríais... atacar naves en llamas más allá de Orión, he visto rayos C brillar en la oscuridad cerca de la puerta Tannhäuser.
Todos esos momentos se perderán en el tiempo como lágrimas en la lluvia.
Es hora de morir.

Si me buscas en twitter, me tienes por @radikaldesig

Desconectado RedPic

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 5544
    • Picmania by Redraven
Re: Contar pulsos con RTCC en RA4
« Respuesta #3 en: 20 de Noviembre de 2007, 16:53:39 »
¿Que Soft es ese? ¿Lleva hard específico? .... hummmmm

Es que yo empecé con mi Analizador lógico de 3 Canales monitorizado en el PC y ...
Contra la estupidez los propios dioses luchan en vano. Schiller
Mi Güeb : Picmania


Desconectado droky

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 628
    • Diseños radikales libres
Re: Contar pulsos con RTCC en RA4
« Respuesta #5 en: 20 de Noviembre de 2007, 17:10:42 »
Ya me gustaria que fuera uno de los grandes, nocturno.... pero me he tenido que contentar con un Wavejet 312. Lo cierto es que ahora si que puedo ver cosas que antes ni se me pasaban por la cabeza :)

Salu2
Yo... he visto cosas que vosotros no creeríais... atacar naves en llamas más allá de Orión, he visto rayos C brillar en la oscuridad cerca de la puerta Tannhäuser.
Todos esos momentos se perderán en el tiempo como lágrimas en la lluvia.
Es hora de morir.

Si me buscas en twitter, me tienes por @radikaldesig

Desconectado RedPic

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 5544
    • Picmania by Redraven
Re: Contar pulsos con RTCC en RA4
« Respuesta #6 en: 20 de Noviembre de 2007, 17:41:00 »
Después de una hora dando vueltas por la Web de LeCroy solo puedo decir ... buaaaaaa buaaaaaa buaaaaaa  :8} :8} :8}

Yo quierooooooooo .....  buaaaaaa buaaaaaa buaaaaaa  :8} :8} :8}


Contra la estupidez los propios dioses luchan en vano. Schiller
Mi Güeb : Picmania

Desconectado RedPic

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 5544
    • Picmania by Redraven
Re: Contar pulsos con RTCC en RA4
« Respuesta #7 en: 20 de Noviembre de 2007, 17:42:09 »
Ya me gustaria que fuera uno de los grandes, nocturno.... pero me he tenido que contentar con un Wavejet 312. Lo cierto es que ahora si que puedo ver cosas que antes ni se me pasaban por la cabeza :)

Salu2

¿Tienes idea de los precios de estos cacharros? Es que no he encontrado nada por ningún sitio.

Edito: 

:shock: :shock: :shock: :shock: :shock: :shock:

¡¡¡ La hostia !!!

En Farnel ... el mas barato 2.290 € ... y he visto precios de 11.900 €

Precios de osciloscopios LeCroy en Farnell

:shock: :shock: :shock: :shock:

Creo que voy a seguir con mi cacharroscopio analógico antediluviano.
« Última modificación: 20 de Noviembre de 2007, 18:00:05 por RedPic »
Contra la estupidez los propios dioses luchan en vano. Schiller
Mi Güeb : Picmania

Desconectado droky

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 628
    • Diseños radikales libres
Re: Contar pulsos con RTCC en RA4
« Respuesta #8 en: 21 de Noviembre de 2007, 02:53:15 »
Uy, el precio no es nada comparado con la bronca que me costó con mi mujer  :shock: :shock: :shock:
Yo lo compré en Farnell hace un par de meses, despues de ver y probar un os cuantos.
Probé el Rigol 1042DS de Xocas, pero los 400Msa/s se me quedaban cortos y el no tener distribuidor en España me daba un no se que. Ahora sí, me quedé alucinado con el módulo analizador lógico de 16 canales que incorpora. Es una gozada para un Osciloscopio de 750 €.



Estuve probando los Tektronix de la serie 1000 en B/N y eran un poco ... pues que me quedaba con mi analógico. Y los de la serie 3000 estaban muy bien, pero el memory depth era muy pequeño y el precio desmesurado.
Así que me decidí por LeCroy, sobre todo porque la pantalla que incorpora es de 7 pulgadas y VGA 640x480. El muestreo Real es de 1GSa/s por canal, almacena en USB, lleva ventilación interna, viene con certificado de calibración ( en los Tektronix es aparte ), en funciones incorporadas es equiparable a la serie 3000 de Tektronix, y el depth memory es de 500K puntos, que te permiten capturar cantidad de señal. Incorpora de serie unas sondas ( pasivas claro ) que ya quisieran llevarlas los Tektronix y la robustez es mayor que la de los Tek de la serie 2000.
Bueno, y que en Farnell te hacen un 10% de descuento ahora mismo y en los Tek no.

Salu2
Yo... he visto cosas que vosotros no creeríais... atacar naves en llamas más allá de Orión, he visto rayos C brillar en la oscuridad cerca de la puerta Tannhäuser.
Todos esos momentos se perderán en el tiempo como lágrimas en la lluvia.
Es hora de morir.

Si me buscas en twitter, me tienes por @radikaldesig


 

anything