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?
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
Welches Datenblatt hast du zur Hand? Das gesuchte Bit befindet sich (zumindest beim 18f4680) in INTCON2 und heisst INTEDG2. Gruss, Edson
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.
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.
>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 :(
>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
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.