TODOPIC

Microcontroladores PIC => Lenguaje C para microcontroladores PIC => Mensaje iniciado por: alexlarrain en 14 de Mayo de 2007, 01:42:19

Título: configurar comparador en C para 16f628
Publicado por: alexlarrain en 14 de Mayo de 2007, 01:42:19
hola: necesito saber como se configura el comparador del pic 16f628 ...he buscado y me dicen que se pone un voltaje de entrada y que si este cambia uno le puede dar una orden que ejecute...

lo que estoy haciendo es tomar datos(voltaje) de un termistor ntc ...entonces el voltaje que me entrega el termistor debera accionar un rele  para encender una luz.. de ante mano gracias..
Título: Re: configurar comparador en C para 16f628
Publicado por: micro_cadaver en 14 de Mayo de 2007, 09:39:53
bueno en primer lugar ya conoces los registros que gobiernan el modulo comparador en un 16F628A? sino es asi entonces será dificil ayudarte, me imagino que ya debes tener el datasheet del pic16f628a, entonces revisa la pagina 61 que corresponde con el modulo comparador, revisa y estudia esa parte sobretodo entiende lo que hacen los registros CMCON y VRCON. luego nos posteas tus dudas y empezamos con tu codigo  :-/ exitos!!!
Título: Re: configurar comparador en C para 16f628
Publicado por: alexlarrain en 14 de Mayo de 2007, 20:02:26


la pregunta es la funcion   setup_comparador y setup_vref se utiliza igual que las funciones CMCON y VRCON...???

porque la funcion CMCON se igualaba a un valor para habilitar o desabilitar los comparadores ..el VRCON ..mmm no se

esto es lo que he realizado hoy ...investigando sacando info de todos lados . el programa toma el valor que le llega al pin (voltaje) lo compara y da una salida para accionar un rele... el programa compila en CCS C

si hay alguna sugerencia ... o algun dato se los agradeceria ....de antemano muchas gracias

#include <16F628A.h>
#FUSES XT,NOWDT,PUT,NOPROTECT,BROWNOUT,NOMCLR,NOLVP,NOCPD
#use delay(clock=4000000)
#use rs232(baud=9600,parity=N,xmit=PIN_B2,rcv=PIN_B1,bits=8)

int puerto;

void main()

{

   setup_comparator(A0_A3_A1_A2);
   setup_vref(VREF_LOW|4); // At VDD=5, the voltage is 2.19V
   enable_interrupts(INT_RTCC);
   enable_interrupts(GLOBAL);

   port_b_pullups(true);
   //set_tris_B(0b11111011);//

  set_tris_a(0b00000111); /*a0,a1,a2 entradas, las demas salidas*/
  output_b(puerto); /*limpiamos todo puerto  B y lo ponemos de salida*/
                         
 while(true)
{
   Delay_ms(1000);
puerto=0;           
output_b(puerto);
while (1){
if (!input(PIN_A0)){                 
output_high(PIN_B0);}

}
}
}
Título: Re: configurar comparador en C para 16f628
Publicado por: micro_cadaver en 15 de Mayo de 2007, 00:49:23
m.. por lo que has respondido me doy cuenta que no has leido el datasheet, tienes que leerlo al menos esa parte concerniente al modulo comparador, te la pongo en bandeja de plata  :mrgreen:

(http://img517.imageshack.us/img517/323/47518033rs8.jpg)

(http://img523.imageshack.us/img523/8711/88198414xa5.jpg)

(http://img514.imageshack.us/img514/839/40918726gm9.jpg)

estos son los registros a los que me referia, no son comandos sino registros de control del propio microncontrolador, revisalos y estudialos para que comprendas de mejor manera que es lo que puedes hacer con el modulo comparador del pic16f628a.

  :-/ :-/ :-/ exitos
Título: Re: configurar comparador en C para 16f628
Publicado por: alexlarrain en 15 de Mayo de 2007, 02:26:07
lo lei ...pero no entendi ...como se aplica al programa

bueno leere mas ... si alguien me puede explicar ... le agradeceria

gracias
Título: Re: configurar comparador en C para 16f628
Publicado por: alexlarrain en 15 de Mayo de 2007, 22:28:33
ya lei

el CMCON no lo usare ya que no comparare 2 voltajes que entran

el VRCON lo utilizare para dar un valor de voltaje ...y si este cambia me da una salida con VR<3:0>

esto es lo que creo haber aprendido...

cualquier sugerencia o acotacion es bienvenida ...y gracias de antemano
Título: Re: configurar comparador en C para 16f628
Publicado por: micro_cadaver en 16 de Mayo de 2007, 00:49:23
Citar
el CMCON no lo usare ya que no comparare 2 voltajes que entran

 :? entonces porque dices que quieres configurar el modulo comparador si no piensas usarlo? vaya contradiccion parece trabalenguas  :-)
Título: Re: configurar comparador en C para 16f628
Publicado por: alexlarrain en 16 de Mayo de 2007, 01:19:52
bueno eso lo supe despues de leer el data e investigar...

gracias por los datos
Título: Re: configurar comparador en C para 16f628
Publicado por: alexlarrain en 29 de Junio de 2007, 01:44:01
encontre una explicacion mas didactica de los comparadores... ojala le sirva a alguien
Título: Re: configurar comparador en C para 16f628
Publicado por: alexlarrain en 01 de Julio de 2007, 00:50:08
encontre una pagina donde tambien explican sobre los comparadores

http://www.interq.or.jp/japan/se-inoue/e_pic8_6.htm#1