Autor Tema: Duda sobre diagrama de la pagina Picmania  (Leído 1874 veces)

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

16f84

  • Visitante
Duda sobre diagrama de la pagina Picmania
« en: 23 de Febrero de 2008, 19:01:53 »
Hola! soy nuevo en este foro, a pesar de estar ya hace varios años entrando y resolviendo mis dudas..

Tengo un problema, quise simular el circuito de esta web http://picmania.garcia-cuervo.com/Tecnicas_en_C_4.php (Web muy buena y muy bien expicado todo) pero hay varios pines del micro que no se como van... Alguien lo probó? O alguien sabrá cómo es el circuito de esa web? Aclaro que en la web esta el codigo en C y nada mas...

Yo deduje, mediante los errores que salen en el simulador que los pines 25 y 26 son TC y RX respectivamente,  el pin 8 va a un led, el pin 1 al positivo y el pin 34 es la entrada... con eso lo unico que obtengo en el "Virtual Terminal" es "-------" y nada mas. En la web se realiza sobre un pic 18F4450.

Desde ya muchas gracias.

Desconectado jim_17

  • Colaborador
  • PIC18
  • *****
  • Mensajes: 309
    • Blog personal
Re: Duda sobre diagrama de la pagina Picmania
« Respuesta #1 en: 23 de Febrero de 2008, 19:18:54 »
Redpic, te llaman :D. Enviale un privado a Redpic, él es el propietario de la pagina.
Share the world !

Blog's

http://www.area0x33.com

Desconectado RedPic

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 5544
    • Picmania by Redraven
Re: Duda sobre diagrama de la pagina Picmania
« Respuesta #2 en: 23 de Febrero de 2008, 21:16:03 »
En el mismo programa tienes las definiciones de los pines que uso, pero de todas formas los coloco de nuevo:

Transmisión Serie TTL - TX PIN_C6 patilla 25 en el 184550 de 40 Pines PDIP
Recepción Serie TTL - RX PIN_C7 patilla 26 en el 184550 de 40 Pines PDIP
Pulso de entrada a medir mediante INT_EXT - PIN_RB0 patilla 33 en el 184550 de 40 Pines PDIP
Led Monitor del Pulso - PIN_E0 patilla 8  en el 184550 de 40 Pines PDIP
Alimentación Positivo - Patillas 11 y 32  en el 184550 de 40 Pines PDIP
Alimentación Negativo - Patillas 12 y 31 en el 184550 de 40 Pines PDIP
Dos condensadores de 100 nF entre las patillas 11 y 12 y otro entre las 32 y 31.
Cristal Oscilador 20 Mhz y dos condensadores de 15 pF a masa - Patillas 13 y 14 en el 184550 de 40 Pines PDIP

Y creo que no le falta nada al hardware.  :mrgreen:

Esquema y PCB (en PDF) en Proyecto RRBOARD2

« Última modificación: 23 de Febrero de 2008, 21:18:27 por RedPic »
Contra la estupidez los propios dioses luchan en vano. Schiller
Mi Güeb : Picmania

16f84

  • Visitante
Re: Duda sobre diagrama de la pagina Picmania
« Respuesta #3 en: 24 de Febrero de 2008, 18:55:02 »
Hola!

Antes que nada, Muchísimas gracias por responder !

Ahora tengo otro problema, modifiqué el código para usarlo en un 12f675 utilizando configuraciones que tomé de otros temas y de códigos que ya funcionaban, pero no logro dar en la tecla. lo probé en Proteus pero no pasa nada :? lo unico que sale es "Midiendo un pulso : Periodo  By Redpic para Foro TODOPIC"

Aquí les adjunto el código para que lo vean y me corrijan que es lo que esta mal...

Código: [Seleccionar]
#include <12F675.h>
#fuses INTRC_IO, NOWDT, NOMCLR, PUT, BROWNOUT
#use delay(clock=4000000)
#use rs232(baud=9600,xmit=PIN_A0, rcv=PIN_A1)
#byte STATUS=0x03
#byte WPU=0x95

float const uSxTick = 0.2;
                     
char Command;                 
int8 numFlancoQueLlega;         
int1 flagToggleFlanco;         
int16 t1,t2,t3;     
int16 tth,ttl,tt;   
float sth,stl,st,f;
int1 flagHayDatos; 

#int_ext
void EXT_isr(){

 ++numFlancoQueLlega;     
  if(flagToggleFlanco==0){
    if(numFlancoQueLlega==1){
      set_timer1(0);     
      t1=get_timer1();   
    }
    if(numFlancoQueLlega==3){
      t3=get_timer1();   
      if(flagHayDatos==0){
        flagHayDatos=1;   
      }
    }
    ext_int_edge(0,H_TO_L);
    flagToggleFlanco=1;     
  } else {                 
    t2=get_timer1();       
    ext_int_edge(0,L_TO_H);
    flagToggleFlanco=0;     
  }
 
  if(numFlancoQueLlega==3){
    numFlancoQueLlega=0;
  }
 
}

void main() {
 
  ext_int_edge(0,L_TO_H);     
  flagToggleFlanco = 0;       

  enable_interrupts(int_ext);
  enable_interrupts(global);

  printf("\r\nMidiendo un pulso : Periodo\r\n");
  printf("By Redpic para Foro TODOPIC\r\n\n");

  do {
    if(flagHayDatos==1){       
      if((t3>t2)&&(t2>t1)){   
        tth = t2 - t1;         
        ttl = t3 - t2;         
        tt = tth + ttl;         
        sth = uSxTick * tth;   
        stl = uSxTick * ttl;   
        st = uSxTick * tt;     
        f = 1 / (st / 1000000);
       }
    }  flagHayDatos=0;
  }
  while (TRUE);
}

Espero que no sea muy fulero lo que hice!

Mi intención con esto es armarme un afinador para la guitarra, algo simple con 3 leds que vayan señalando como esta la afinación... Pero primero quiero que me muestre la frecuencia que esta entrando. para poder establecer unos condicionales y asi hacerlo menos complicado.

Desde ya muchas gracias.
« Última modificación: 24 de Febrero de 2008, 18:59:01 por 16f84 »


 

anything