#include <12F629.h>
#fuses INTRC_IO, NOWDT, NOPROTECT
#use delay(clock=4000000)
#use rs232(baud=9600, xmit=PIN_A2)
#define BATTERY PIN_A1
#define LED_R PIN_A4
#define LED_V PIN_A5
#define ON output_high
#define OFF output_low
#INT_COMP
void isr() {
if (C1OUT == 0){
printf("Baterry Voltage level is above 3.6 V\r\n");
OFF (LED_R);
ON (LED_V);
}
else {
printf("WARNING!! Baterry Voltage level is below 3.6 V\r\n");
OFF (LED_V);
ON (LED_R);
}
}
main() {
OFF (LED_R);
ON (LED_V);
setup_comparator(A1_VR);
delay_us(10); //just allow a little time for the voltages to settle
clear_interrupt(INT_COMP); //now ensure the interrupt is clear.
setup_vref(VREF_HIGH|15);
enable_interrupts(INT_COMP);
enable_interrupts(GLOBAL);
while(TRUE);
}
[/font]