STM32F107VC Externer Interrupt

OP #2234130
Lesenswert?

GUTEN TAG!

Ich arbeite mit dem uVision von Keil mit einem STM32F107VC Prozessor!
Ich möchte mit dem Eingang Port D13 einen externen Interrupt erzeugen.
Das mit der Einsprungstelle der Interrupts und die Wahl der richtigen 
Quelle habe ich noch nicht ganz verstanden.

Mein Programm:
1
#define     INTERMASKREG            0x00002000
2
#define     FALLTRIGSELECREG        0x00002000
3
#define     EXINTCONFIGREG4         0x00000030
4

5

6
void init(void)                                            //
7
{
8

9
// EXT-Interrupt
10
    EXTI  ->  IMR       = INTERMASKREG; 
11
    EXTI  ->  FTSR      = FALLTRIGSELECREG;               
12
    AFIO  ->  EXTICR[3] = EXINTCONFIGREG4;//PortD13 the EXT_Inter.source
13
    NVIC    ->  ISER[0]    = 0x0000000D;                    //
14
                                        
15
}
16

17

18

19
void EXTIO_IRGHandler(void)
20
{
21

22
    if(EXTI -> PR & (1 << 13))
23
    {
24
    
25
        EXTI    ->  PR |= (1 << 13);
26

27
        GPIOD   ->  BSRR         =   (0 << 12);
28
        GPIOD   ->  BSRR         =   (0 << 11);   
29
    }
30

31
}

Hat jemand eine Idee, was da nicht gut ist?? ich meine, wenn ich den 
PortD Pin 13  auf 1 setze, müsste doch ein externer Interrupt ausgelöst 
werden??

Vielen Dank und freundliche Grüsse!

M.B.
OP #2236657
Lesenswert?

Hallo!
1
#define     CLOCKCONFIG             0x001D8402
2
#define     CLOCKCONTROLL           0x01000081
3
#define     CLOCKENABLES            0x00000BF5
4

5
#define     CONFIGREGHIGHA          0x888888BB
6
#define     CONFIGREGLOWC           0x88888888
7
#define     CONFIGREGLOWD           0x88888888
8
#define     CONFIGREGHIGHD          0x88833833
9
#define     CONFIGREGHIGHE          0x33333333
10

11

12

13
// Clocks
14
    RCC     ->  APB2ENR     =   CLOCKENABLES;
15
    RCC     ->  CFGR        =   CLOCKCONFIG;    // Clockconfigurations
16
    RCC     ->  CR          =   CLOCKCONTROLL;   // 8MHz, PLL enable
17

18
    while(RCC -> CR   == (1<<1))          // waiting for Clock is stabile
19
    {                                                       //
20
        __nop();                                            //
21
    }                                                       //
22

23
    // GPIOs
24
    GPIOA   ->  CRH         =   CONFIGREGHIGHA; // Ports Input/Output
25
    GPIOD   ->  CRL         =   CONFIGREGLOWD; // Ports confi Input/Output
26
    GPIOD   ->  CRH         =   CONFIGREGHIGHD; // Ports confi Input/Output
27
    GPIOC   ->  CRL         =   CONFIGREGLOWC;  // Ports confi Input/Output
28
    GPIOE   ->  CRH         =   CONFIGREGHIGHE; // Ports confi Input/Output
29
    
30
    GPIOD   ->  BSRR         =   (1 << 12);

So sieht die Clock- und Port config. aus! Müsste doch passen??

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