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

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.