Rob,
Why don't you check this out.
Code:'PIC 12F683 #CONFIG __config _INTRC_OSC_NOCLKOUT & _WDT_OFF & _MCLRE_OFF & _CP_OFF #ENDCONFIG DEFINE OSC 4 '4mhz ocsillator ANSEL = %00000010 'pin 6 analog CMCON0 = %00000100 'comparator mode VRCON = %10101000 'voltage reference TRISIO = %00000010 'pin 6 input PAUSE 50 'wait for hardware to settle ON INTERRUPT GOTO int1 'interrupt handler is int1 INTCON = %11001000 'enable GIE and GPIE; clear GPIF PIE1 = %00001000 'enable comparator interrupt POT1 VAR CMCON0.6 'read potentiometer LED VAR GPIO.2 'led pin 5 loop1 var word 'loop1 counter bitTest var bit 'Debug test bit. Set/Clear in ISR and Check in main high LED 'Start with LED ON pause 500 'Pause .5 secs so you can see the LED turn on bitTest = POT1 'Take initial reading of input voltage state Loop1 = 0 ENABLE main: IF bitTest = 1 THEN 'input voltage is < reference voltage low LED nap 1 else 'bitTest = 0 - input voltage is > reference voltage GOTO FLASH ENDIF GOTO main ENABLE FLASH: do for loop1 = 1 to 1000 HIGH LED PAUSE 1 NEXT LOOP1 for loop1 = 1 to 1000 LOW LED PAUSE 1 NEXT LOOP1 IF bitTest = 1 THEN GOTO main ENDIF LOOP DISABLE 'disable interrupts in handler int1: if PIR1.3 = 1 then 'Comparator Interrupt fired (must be cleared before resume) bitTest = pot1 ENDIF INTCON =%11001000 PIR1 = %00000000 'reset CMIF RESUME 'where left off ENABLE 'enable interrupts




Bookmarks