Externe Interrupt Quelle

OP #2232373
Lesenswert?

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.

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