Hallo,
ich möchte einen Comparator vom PIC16F684 nutzen. Beim überschreiten 
einer bestimmten Spannung soll ein Interrupt ausgelößt werden, aber es 
tut sich nichts.
Habe an C2-/RC1 (PIN9) einen Spannungsteiler und an C2+/RC0 (PIN10) die 
zu überwachende Spannung (im Moment auch Spannungsteiler).
Hier mein Code:
| 1 | #include <16F684.h>
 | 
| 2 | #pragma ID CHECKSUM        // Checksumme als ID
 | 
| 3 | #pragma device adc=16
 | 
| 4 | #pragma FUSES NOWDT             //No Watch Dog Timer
 | 
| 5 | #pragma FUSES INTRC_IO          //Internal RC Osc, no CLKOUT
 | 
| 6 | #pragma FUSES PUT               //Power Up Timer
 | 
| 7 | #pragma FUSES NOMCLR            //Master Clear pin used for I/O
 | 
| 8 | #pragma FUSES NOIESO            //Internal External Switch Over mode disabled
 | 
| 9 | #pragma FUSES NOFCMEN           //Fail-safe clock monitor disabled
 | 
| 10 | #pragma use delay(int=8000000)
 | 
| 11 | #pragma ZERO_RAM
 | 
| 12 | 
 | 
| 13 | #pragma use FIXED_IO( A_outputs=PIN_A5,PIN_A2,PIN_A1,PIN_A0 )
 | 
| 14 | #pragma use FIXED_IO( C_outputs=PIN_C5,PIN_C4,PIN_C3,PIN_C2 )
 | 
| 15 | 
 | 
| 16 | #define led1 PIN_A0
 | 
| 17 | #define led2 PIN_A1
 | 
| 18 | #define led3 PIN_A2
 | 
| 19 | #define led4 PIN_C2
 | 
| 20 | #define led5 PIN_C3
 | 
| 21 | #define led6 PIN_C4
 | 
| 22 | #define led7 PIN_C5
 | 
| 23 | #define led8 PIN_A5
 | 
| 24 | 
 | 
| 25 | // Interrupt_SR #############################################
 | 
| 26 | #int_COMP
 | 
| 27 | void  COMP_isr(void) 
 | 
| 28 | {
 | 
| 29 |   output_high(led8);
 | 
| 30 |   delay_ms(500);
 | 
| 31 |   output_low(led8);
 | 
| 32 |   delay_ms(500);
 | 
| 33 |   output_high(led8);
 | 
| 34 |   delay_ms(500);
 | 
| 35 |   output_low(led8);
 | 
| 36 | }
 | 
| 37 | 
 | 
| 38 | 
 | 
| 39 | // Hauptprogramm ############################################
 | 
| 40 | void main()
 | 
| 41 | {
 | 
| 42 |   setup_oscillator(OSC_8MHZ);
 | 
| 43 |   setup_adc(ADC_OFF);
 | 
| 44 |   setup_adc_ports(NO_ANALOGS);
 | 
| 45 |   setup_ccp1(CCP_COMPARE_INT);
 | 
| 46 |   setup_comparator(NC_NC_C1_C0); 
 | 
| 47 |   enable_interrupts(INT_COMP);
 | 
| 48 |   enable_interrupts(GLOBAL);
 | 
| 49 |   
 | 
| 50 |   output_high(led8);
 | 
| 51 |   delay_ms(300);
 | 
| 52 |   output_low(led8);
 | 
| 53 |   delay_ms(300);
 | 
| 54 |   output_high(led8);
 | 
| 55 |   delay_ms(300);
 | 
| 56 |   output_low(led8);
 | 
| 57 |     
 | 
| 58 |   while(TRUE)
 | 
| 59 |   {
 | 
| 60 |       delay_cycles(10);
 | 
| 61 |   }
 | 
| 62 | }
 |