TODOPIC
Microcontroladores PIC => Lenguaje C para microcontroladores PIC => Mensaje iniciado por: 16f84 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.
-
Redpic, te llaman :D. Enviale un privado a Redpic, él es el propietario de la pagina.
-
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 (http://picmania.garcia-cuervo.com/Proyectos_RRBoard2.php)
-
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...
#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.