Hallo,
ich bekomme meine externen Taster per Interrupt nicht zum Laufen.
Ich hatte da ganze zunächst ohne Interrupt probiert. Da funktioniert
alles. Taster sind hardwareseitig entprellt.
Er springt nicht in die Interrupt-Routinen.
PIC24FJ128GA106 und die Taster sind an PIN42 (RTCC/RP2/CN53/RD8)
und PIN 14 (AN2/C2INB/RP13/CN4/RB2)
1 | void init_taster(void){ //wird in main aufgerufen
|
2 | //Taster 1
|
3 | RPINR0bits.INT1R = 2; //Pin für Interrupt bestimmen
|
4 |
|
5 | _INT1EP = 1; // negative Flanke
|
6 | _INT1IP = 1; // Priorität
|
7 | _INT1IF = 0; // clean flag
|
8 | _INT1IE = 1; // enable external interrupt
|
9 |
|
10 | //Taster 2
|
11 | RPINR1bits.INT2R = 13; //Pin für Interrupt bestimmen
|
12 |
|
13 | _INT2EP = 0; // positive Flanke
|
14 | _INT2IP = 1; // Priorität
|
15 | _INT2IF = 0; // clean flag
|
16 | _INT2IE = 1; // enable external interrupt
|
17 |
|
18 | }
|
19 |
|
20 | //--------------------------------------------------------------------
|
21 | // Taster externer Interrupt
|
22 | //--------------------------------------------------------------------
|
23 | void __attribute__ ((__interrupt__, no_auto_psv)) _INT1Interrupt(void){
|
24 |
|
25 | LED_GRUEN = AN;
|
26 | LED_ROT = AUS;
|
27 |
|
28 | _INT1IF = 0;
|
29 | }
|
30 |
|
31 | //--------------------------------------------------------------------
|
32 | // Taster externer Interrupt
|
33 | //--------------------------------------------------------------------
|
34 | void __attribute__ ((__interrupt__, no_auto_psv)) _INT2Interrupt(void){
|
35 |
|
36 | LED_GRUEN = AUS;
|
37 | LED_ROT = AN;
|
38 |
|
39 | _INT2IF = 0;
|
40 | }
|
Hat vielleicht jemand einen Tipp, was ich vergesen haben könnte oder
falsch gemacht habe.
Gruß
dieter