TODOPIC
Microcontroladores PIC => Lenguaje C para microcontroladores PIC => Mensaje iniciado 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..
-
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!!!
-
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);}
}
}
}
-
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
-
lo lei ...pero no entendi ...como se aplica al programa
bueno leere mas ... si alguien me puede explicar ... le agradeceria
gracias
-
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
-
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 :-)
-
bueno eso lo supe despues de leer el data e investigar...
gracias por los datos
-
encontre una explicacion mas didactica de los comparadores... ojala le sirva a alguien
-
encontre una pagina donde tambien explican sobre los comparadores
http://www.interq.or.jp/japan/se-inoue/e_pic8_6.htm#1