Hola gente.. tengo un problema con los comparadores del 16F628A, esto es lo que me sucede:
Necesito usar los 2 comparadores y utilizarlos respecto a una tension de referencia generada internamente de 1.25V. Configure los comparadores para usar como entrada los pines RA0 y RA1, cuando se active uno de los comparadores, se debe activar la interrupcion correspondiente, verificar cual de los 2 comparadores la activo y si fue activada por el comparador 1 poner a uno el RB6, y si fue activada por el otro comparador poner a uno la RB7.
Este es el codigo que escribi pero no me funciona y probe haciendo algunas modificaciones y sigue sin funcionar:
#FUSES XT,MCLR,NOWDT,NOPROTECT,PUT,NOLVP //ordenes para el programador
#USE DELAY (CLOCK=4000000) //Fosc=4Mhz
#use standard_io(a)
#INT_COMP
VOID COMPARADOR1(){
IF(C1OUT){
OUTPUT_HIGH(PIN_b6);
}
IF(C2OUT){
OUTPUT_HIGH(PIN_b7);
}
}
VOID MAIN(){
set_tris_b(0x3F);
SETUP_COMPARATOR(A0_VR_A1_VR| CP1_INVERT | CP2_INVERT);
SETUP_VREF(VREF_LOW | 6);
ENABLE_INTERRUPTS(INT_COMP);
ENABLE_INTERRUPTS(GLOBAL);
OUTPUT_LOW(PIN_b6);
OUTPUT_LOW(PIN_b7);
DO{
}WHILE(TRUE);
}
No se si tal vez hay algun problema al asignar los puertos como entrada o salida o algun bug del ccs.
Este programa lo hice simplemente para probar los comparadores, luego debo implementarlo a otro programa, pero quiero saber si alguno puede ayudarme con la configuracion o decirme si cometo algun error en la interrupcion.
Desde muchas gracias y espero puedan ayudarme.