Hallo,
ich möchte auf PortB.13 einen externen Interrupt auslösen. Der Pin ist
als Eingang mit Pullup definiert, am Oszi kann ich beim Tasterdruck
sehen, dass dort ein Wechsel von High auf Low stattfindet.
Es ist ein STM32F070RB.
Ich habe folgende paar Zeilen Code, die keinen Interrupt auslösen. Hat
jemand ein Tip, was ich übersehen haben könnte?
1 | void setInterrupt(uint8_t u8Flag, uint8_t u8Priority) {
|
2 | NVIC->ICPR[u8Flag / 32] |= 1 << (u8Flag % 32);
|
3 | NVIC->IP[u8Flag / 4] |= (u8Priority << 6) << (8 * (u8Flag % 4));
|
4 | NVIC->ISER[u8Flag / 32] |= 1 << (u8Flag % 32);
|
5 | }
|
6 |
|
7 | /*Fallende Flanke, Pending löschen, PB13 auf EXTI13*/
|
8 | EXTI->FTSR1 |= EXTI_FTSR1_FT13;
|
9 | EXTI->FPR1 |= EXTI_FPR1_FPIF13;
|
10 | EXTI->EXTICR[3] |= 1 << EXTI_EXTICR4_EXTI13_Pos;
|
11 | setInterrupt(EXTI4_15_IRQn, 1);
|
12 |
|
13 | void EXTI4_15_IRQHandler() {
|
14 | EXTI->FPR1 |= EXTI_FPR1_FPIF13;
|
15 | }
|