mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik externe Interrupts beim PIC18F


Autor: Chris H. (xkris)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ist zufällig jemand hier der sich mit dem PIC18F auskennt. Der µc 
verfügt laut Datenblatt über  3 I/O Pins, INT0, INT1 und NT2, die einen 
externen Interupt auslösen können.
Dabei lässt sich in einem Register festlegen, ob der Interupt bei 
steigender oder fallender Flanke an diesen Pins ausgelöst werden soll. 
Dies lässt sich laut Datenblatt für jeden dieser 3 Pins frei 
konfigurieren.

"External interrupts on the RB0/INT0, RB1/INT1 and
RB2/CANTX/INT2 pins are edge triggered: either rising
if the corresponding INTEDGx bit is set in the
INTCON2 register, or falling if the INTEDGx bit is clear."

Für INT0 und INT1 gibt es diese Bits im angegebenen Register, allderings 
fehlt diese Angabe für INT2.

Muss ich dann annehmen, dass INT2 auf beide Flanken reagiert oder wie 
soll das funktionieren?

Autor: CaH (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Aus dem Datenblatt für einen PIC18F2480


bit 6 INTEDG0: External Interrupt 0 Edge Select bit
1 = Interrupt on rising edge
0 = Interrupt on falling edge
bit 5 INTEDG1: External Interrupt 1 Edge Select bit
1 = Interrupt on rising edge
0 = Interrupt on falling edge
bit 4 INTEDG2: External Interrupt 2 Edge Select bit
1 = Interrupt on rising edge
0 = Interrupt on falling edge

Autor: Meister Eder (edson)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Welches Datenblatt hast du zur Hand?

Das gesuchte Bit befindet sich (zumindest beim 18f4680) in INTCON2 und 
heisst INTEDG2.

Gruss,
Edson

Autor: Chris H. (xkris)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ah, danke vielmals.

bit 6 und bit 5 hab ich auch aber bit 4 hat laut meinem Datenblatt 
(PIC18FXX8 Data Sheet) keine Funktion.

@Meister Eder: genau diese Angabe fehlt in meinem Datenblatt.

Autor: Meister Eder (edson)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Schau mal nach ob du INTEDG2 in deinem .INC-file findest. Wenn nicht, 
hat der PIC den du nutzt keinen INT2.

Gruss,
Edson

Nachtrag: Das von Dir beschriebene Datenblatt gehört zu den älteren 
PIC18 Typen. Die neueren, z.B. 18f4680, 18f2480 usw. sind Enhanced 
PIC18. Zwischen den Angaben im allgemeinen Family-Datasheet für die 
jeweiligen Typen kann es also Abweichungen geben. Letztlich sollte man 
immer auch das explizite Datenblatt für den Typen nehmen, den man 
wirklich benutzt.

Autor: holger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Wenn nicht, hat der PIC den du nutzt keinen INT2.

INTEDG2 ist weder in den C noch in den ASM
Headerfiles für z.B. PIC18F258 zu finden.
Bis Compilerversion V3.0 jedenfalls nicht.
Im Datenblatt findet man INTEDG2 nicht.
In den Erratas steht auch nichts dazu.
INT2IF, INT2IE und INT2IP sind aber vorhanden. Im Datenblatt
und in den Headerfiles. Ich würde auf Bit 4 von
INTCON2 für INTEDG2 tippen ;)

Einfach ausprobieren. Wenn es nicht geht gibt es keinen INT2 :(

Autor: Meister Eder (edson)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>INTEDG2 ist weder in den C noch in den ASM
>Headerfiles für z.B. PIC18F258 zu finden.

Welcher Compiler? Aus dem .INC (MPASM V8.0) des 18f258:

;----- INTCON2 Bits ----------------------------------------------
NOT_RBPU        EQU  H'0007'
RBPU            EQU  H'0007'
INTEDG0         EQU  H'0006'
INTEDG1         EQU  H'0005'
INTEDG2         EQU  H'0004'
TMR0IP          EQU  H'0002'
T0IP            EQU  H'0002'      ; For compatibility with T0IE and T0IF
RBIP            EQU  H'0000'

>Ich würde auf Bit 4 von
>INTCON2 für INTEDG2 tippen ;)

Die Annahme war aber offensichtlich richtig ;)

Gruss,
Edson

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.