lo siento pero aun sigo dandole vueltas y mas vueltas de por que no me van los comparadores en la gama de los 18f...
me pasaron un ejemplo en el foro de ccs pero no se por que a mi no me va....
aqui va el codigo que me pasaron...
#include <18F4550.h>
#fuses INTRC_IO,NOWDT,PUT,BROWNOUT,NOLVP
#use delay(clock=4000000)
#define VREF_LOW_THRESHOLD 11 // Vref = 2.3 volts
#define VREF_HIGH_THRESHOLD 12 // Vref = 2.5 volts
#define LED_PIN PIN_B0
#byte CMCON = getenv("SFR:CMCON")
//------------------------------------
#INT_COMP
void isr()
{
int8 temp;
if(C1OUT == 1)
{
output_high(LED_PIN); // LED on
setup_vref(VREF_LOW | VREF_LOW_THRESHOLD);
}
else
{
output_low(LED_PIN); // LED off
setup_vref(VREF_LOW | VREF_HIGH_THRESHOLD);
}
// Read CMCON register to clear the "mismatch" condition.
temp = CMCON;
}
//==================================================
void main()
{
int8 value;
setup_comparator(A0_VR_A1_VR | CP1_INVERT);
setup_vref(VREF_LOW | VREF_HIGH_THRESHOLD);
// Initialize the LED.
if(C1OUT == 1)
output_high(LED_PIN);
else
output_low(LED_PIN);
value = CMCON; // Clear mismatch condition.
clear_interrupt(INT_COMP); // Clear interrupt flag
enable_interrupts(INT_COMP); // Enable interrupts
enable_interrupts(GLOBAL);
while(1);
}
un saludo y a ver si hay suerte y alquien me puede aclarar un poco donde esta el fallo por que yo no lo encuentro...
PD... alguien podria bajarse los archivos que he puesto antes o compilar este programa y que me lo pase asi mirare si es un bug en mi compillador ccs, yo uso el 4.104
gracias y un saludo...