Mir fiel gerade ein, dass mein aktuelles Projekt, ja doch den
RA0-Komparatorinterrupt benutzt. Falls es dir was nützt, hier mal die
wichtigsten Codeschnipsel:
ISR:
1 | ;welcher Interrupt?
|
2 | IH_Interrupt_Poll
|
3 | Bank0
|
4 | btfsc PIR2,C1IF ;Test auf Komparator1 Interupt
|
5 | goto IH_Comp1
|
6 |
|
7 | IH_Comp1
|
8 | Bank2
|
9 | btfss CM1CON0,C1OUT
|
10 | goto IH_Comp1_ende
|
11 | :
|
12 | :
|
13 |
|
14 | IH_Comp1_ende
|
15 | Bank0
|
16 | bcf PIR2,C1IF ;Interruptbit Komparator zurücksetzen
|
Init:
1 | ;Komparator1 initialisieren, löst Interrupt aus bei Spannungsausfall
|
2 | Bank1
|
3 | bsf VRCON,VR3 ;VR<3:0> = .11 um Referenzspannung auf 2,97V einzustellen. Das entspricht ca. 14V Eingangsspannung
|
4 | bcf VRCON,VR2
|
5 | bsf VRCON,VR1
|
6 | bsf VRCON,VR0
|
7 | bsf VRCON,VREN ;Referenzspannungsquelle einschalten
|
8 | Bank2
|
9 | bsf CM2CON1,C1RSEL ;Die interne Ref.spg. vom Ref.spg.modul soll benutzt werden
|
10 | bsf CM1CON0,C1R ;Die interne Ref.Spg. soll am Komparator1 +Eingang anliegen
|
11 | bsf CM1CON0,C1ON ;Komparator1 einschalten
|
Eventuell nützt es dir ja was
Gruß
Sven