www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Interrupt PIC


Autor: Max Berg (maxberg)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Willivonbienemaya .. (willivonbienemaya)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Max Berg (maxberg)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Oh!

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

Schönen Abend noch!!

Autor: Sven Stefan (stepp64) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Sven Stefan (stepp64) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht 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:
;welcher Interrupt?
IH_Interrupt_Poll
  Bank0
  btfsc   PIR2,C1IF  ;Test auf Komparator1 Interupt
  goto  IH_Comp1

IH_Comp1
  Bank2
  btfss  CM1CON0,C1OUT
  goto  IH_Comp1_ende
        :
        :

IH_Comp1_ende
  Bank0
  bcf  PIR2,C1IF  ;Interruptbit Komparator zurücksetzen

Init:
;Komparator1 initialisieren, löst Interrupt aus bei Spannungsausfall
  Bank1
  bsf  VRCON,VR3  ;VR<3:0> = .11 um Referenzspannung auf 2,97V einzustellen. Das entspricht ca. 14V Eingangsspannung
  bcf  VRCON,VR2
  bsf  VRCON,VR1
  bsf  VRCON,VR0
  bsf  VRCON,VREN  ;Referenzspannungsquelle einschalten
  Bank2
  bsf  CM2CON1,C1RSEL  ;Die interne Ref.spg. vom Ref.spg.modul soll benutzt werden
  bsf  CM1CON0,C1R  ;Die interne Ref.Spg. soll am Komparator1 +Eingang anliegen
  bsf  CM1CON0,C1ON  ;Komparator1 einschalten

Eventuell nützt es dir ja was

Gruß
Sven

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.