Buenas a todos.. estoy por trabajar por primera vez con los comparadores analogicos de un 16f628 para hacer un cargador de pilas y tengo algunas dudas. Primero, utilice el programa de ejemplo del CCS para manejo de los comparadores (Ex_comp.c) que funciono de maravilla y simule con Proteus, las dudas fueron que si seteo de la siguiente forma :
setup_comparator(A3_VR_A2_VR);//// entrada por A3 y A2 + referencia
setup_vref(VREF_HIGH|15); ////////// referencia en 3.6V
enable_interrupts(INT_COMP);
enable_interrupts(GLOBAL);
cuando inicio la simulacion los registros del cmcon c2out y c1out siempre estan en 0 por mas que las tensiones en A3 y A2 sean inferiores que la referencia, la unica forma de que c1out y c2out sea 1 es que la tension de entrada supere la referencia y que despues descienda por debajo de la referencia... Esto es siempre asi ?
La solucion que encontre es primero setear la referencia a:
setup_vref(VREF_HIGH|0); ////////// referencia en 0V para que A2 o A3 sean siempre superior a la referencia.
y depues a:
setup_vref(VREF_HIGH|15); ////////// referencia en 3.6V, para que C2out y C1out dende el resultado correcto.
esto anda pero no se si es lo correcto..
Otra cosa hay alguna instruccion para leer los C1out y C2out o hay que definir dos bit y leerlos de ahi ?
Saludos a todos Mariano ..