PIC32MX350: INT4 wird nie ausgelöst

Gast #6161750
Lesenswert?

Ich verwende hier drei externe Interrupts INT1, INT2 und INT4 an D8, D9 
und D11. Die Zuweisung der Pins sollte passen:
1
    INT2Rbits.INT2R = 0x0000;   //RD9->EXT_INT:INT2;
2
    INT4Rbits.INT4R = 0x0003;   //RD11->EXT_INT:INT4;
3
    INT1Rbits.INT1R = 0x0004;   //RD8->EXT_INT:INT1;

Die Initialisierung der Interrupts selber sieht für mich auch gut aus:
1
    IPC4bits.INT4IP = 1;
2
    IPC4bits.INT4IS = 0;
3
    IPC1bits.INT1IP = 1;
4
    IPC1bits.INT1IS = 0;
5
    IPC2bits.INT2IP = 1;
6
    IPC2bits.INT2IS = 0;
7

8
    INTCONbits.MVEC = 1;

Trotzdem wird INT4 nie ausgelöst. Das Signal steht am richtigen Pin an, 
INT1 und INT2 funktionieren erwartungsgemäß nur am Breakpoint in
1
void __ISR(_EXTERNAL_4_VECTOR, IPL1AUTO) _EXTERNAL_4(void)
2
{
3
    //***User Area Begin->code: Ext INT 4***
4
    SYNCIsr();
5
    //***User Area End->code: Ext INT 4***
6
    EX_INT4_InterruptFlagClear();
7
}

bleibe ich nie stehen. Was könnte da fehlen/falsch sein?

Danke!
Gast #6161801
Lesenswert?

OK, Ursache gefunden: Das Interrupt-Flag für ISR2 wurde nie gelöscht - 
warum dann INT1 und INT2 weiter funktioniert haben, INT4 aber nicht, ist 
mir zwar nicht ganz klar, aber damit funktioniert es jetzt.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren