Hallo!
Ich arbeite mit dem uVision von KEIl, STM32F107VC.
Ich möchte mit externen Interrupts arbeiten, in Beispielen habe ich
schon einiges gesehen, aber irgendwie funktionierts noch nicht ganz.
Meine Frage: Ich möchte mit beim aktivieren von PortD 13 einen externen
Interrupt auslösen, der mit den PortD12 auf Null setzt.
1 | //Init
|
2 |
|
3 | #define INTERMASKREG 0x00000011
|
4 | #define FALLTRIGSELECREG 0x00000011
|
5 | #define EXINTCONFIGREG4 0x00003030
|
6 | #define EVENTCONTREG 0X0000004A
|
7 |
|
8 |
|
9 | EXTI -> IMR = INTERMASKREG; //
|
10 | EXTI -> FTSR = FALLTRIGSELECREG; //
|
11 | EXTI -> RTSR = 0x00000001; //
|
12 | EXTI -> SWIER = 0x00000000; //
|
13 | AFIO -> EXTICR[3] = EXINTCONFIGREG4; //PD 13 EXT_Interrupt source
|
14 | AFIO -> EVCR = EVENTCONTREG;
|
15 | NVIC -> ISER[0] |= (1 << (0x00000006 & 0x0000001F));
|
16 |
|
17 | //Interrupt-Subroutiene
|
18 |
|
19 | void EXTIO_IRGHandler(void)
|
20 | {
|
21 |
|
22 | if(EXTI -> PR & (1 << 0))
|
23 | {
|
24 |
|
25 | EXTI -> PR |= (1 << 0);
|
26 |
|
27 | GPIOD -> BSRR = (0 << 12);
|
28 | GPIOD -> BSRR = (1 << 11);
|
29 | }
|
30 |
|
31 | }
|
Gibt es niergends eine Anleitung zu den Interrupts? Im Reference Manual
jedenfalls nicht!?
Danke und Gruss!
M.B.