Externer Interrupt PIC32

Gast #3804357
Lesenswert?
• ▲
▼
Hallo, ich kämpfe gerade mit dem externen Interrupt bei einem 
PIC32MX470. Mein Programm sieht wie folgt aus:
1
#include <stdio.h>
2
#include <stdlib.h>
3
#include <plib.h>
4

5
#pragma config FPLLMUL = MUL_20, FPLLIDIV = DIV_4, FPLLODIV = DIV_2, FWDTEN = OFF
6
#pragma config POSCMOD = HS, FNOSC = PRIPLL, FPBDIV = DIV_2
7
#define SYS_FREQ (50000000L) 
8

9
int main(int argc, char** argv) {
10
    
11
    TRISGbits.TRISG8 = 1;           //INT3-Pin als Eingang
12
    TRISDbits.TRISD0 = 0;
13
    
14
    //Externes Interrupt
15
    INTCONbits.INT3EP = 1;          //auf steigende Flanke reagieren
16
    INT3Rbits.INT3R = 0b0001;       //RPG8 als Int Pin
17
    IFS0bits.INT3IF = 0;            //Flag löschen
18
    IPC3bits.INT3IP = 3;            //Priorität festlegen
19
    IEC0bits.INT3IE = 1;            //Interrupt aktivieren
20

21
    INTEnableSystemMultiVectoredInt();   //Interrupts global zulassen
22

23
    while(1){
24
    }
25

26
    return (EXIT_SUCCESS);
27
}
28

29
    void __ISR(_EXTERNAL_3_VECTOR, ipl3) External3Handler(void){
30

31
        LATDbits.LATD0 = 1;
32
      
33
        IFS0bits.INT3IF = 0;     //Flag löschen
34
    }


Mir ist momentan nicht klar, was ich vergesse. Ich definiere den Pin als 
Eingang, setze die entsprechenden Bits für das Interrupt, habe daran 
gedacht die Interrupts global zuzulassen und habe auch den 
Routinen-Aufruf meiner Meinung nach richtig implementiert. Trotzdem wird 
der Test-Pin nicht auf high geschaltet, wenn ich den Interrupt-Pin mit 
der Versorgungsspannung "berühre". Sieht vielleicht jemand das was ich 
nicht sehe? Habe auch die Pins getestet.. wenn ich sie als Output 
definiere und auf 1 setze, kann ich die 3,3V messen.

Schonmal vielen Dank für die Unterstützung!

Antwort schreiben

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.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.