Forum: Mikrocontroller und Digitale Elektronik Interrupt PIC


von Max B. (maxberg)


Lesenswert?

Hey kann mir jemand helfen wie man bei einem PIC16F887 einen Interrupt 
an RA0 machen kann?
Hab davon leider echt fast keine Ahnung... (Brav wie ich war hab ich 
auch schon gegoogelt aber mehr Interrupts an RB gefunden..)

Danke!

Liebe Grüße Max Berg

von Willivonbienemaya .. (willivonbienemaya)


Lesenswert?

Max Berg wrote:
> Hey kann mir jemand helfen wie man bei einem PIC16F887 einen Interrupt
> an RA0 machen kann?
> Hab davon leider echt fast keine Ahnung... (Brav wie ich war hab ich
> auch schon gegoogelt aber mehr Interrupts an RB gefunden..)

Ich kenne den Controller nicht. Aber im Datenblatt (Page 7) steht ja an 
welchen Pins INterruptfunktionen liegen. Nur PortB hat IOC (Interrupt on 
change).

Du musst das wohl ohne Interrupt lösen.

von Max B. (maxberg)


Lesenswert?

Oh!

Stimmt danke, das habe ich übersehen... Naja kann man nix machen =)

Schönen Abend noch!!

von Sven S. (stepp64) Benutzerseite


Lesenswert?

Über die Komparatoren sollte es gehen. Die können auch einen Interrupt 
auslösen. Ist nur etwas schwieriger die richtigen Einstellungen zu 
finden. Ließ dir mal im Datenblatt den Abschnitt über die Komparatoren 
durch und zur Hilfe bei sprut.de. Ich hab das allerdings auch noch nicht 
so verwendet, kann dir also keine fertige Routine liefern.

Sven

von Sven S. (stepp64) Benutzerseite


Lesenswert?

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

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.