Forum: Mikrocontroller und Digitale Elektronik uVision KEIL / Fehlermeldung


von Ma B. (drumstick)


Lesenswert?

Hallo!

Ich programmiere mit dem uVision von Keil in c einen externer Interrupt 
an PortD13. Nun bin ich an der Initialisierung und es tritt folgende 
Meldung auf:

Init\Init.c(467): error:  #136: struct "<unnamed>" has no field 
"EXTICR4"
1
AFIO -> EXTICR4 = EXINTCONFIGREG4; //PortD Pin 13 is the EXT_Interrupt source
2
AFIO -> EVCR    = 0x0000;

mir ist bewusst, dass die Initialisierung noch lange nicht fertig ist, 
doch möchte ich zuerst diesen Error beheben!

Ausschnitt aus dem Reference Manuale:

External interrupt configuration register 4 (AFIO_EXTICR4)

Was mach ich falsch?

Danke und Gruess!

M.B.

von Ma B. (drumstick)


Lesenswert?

Hmm,
1
AFIO -> EXTICR[3] = EXINTCONFIGREG4; //PortD Pin 13 is the EXT_Interrupt source


so funktionierts! Aber dies ist im Manual überhaupt nicht ersichtlich!

Und stimmt das, für AFIO -> EXTICR4 muss ich AFIO -> EXTICR[3] 
schreiben??

Danke und Gruss

M.B.

von Bernd B. (Firma: BB) (berndb)


Lesenswert?

Hallo M.B.,

um was geht es genau ?.
(Welche uC Familie, Typ usw. ?)

Gruß Bernd

von Ma B. (drumstick)


Lesenswert?

Hallo!

Ich arbeite mit dem STM32F107VC und möchte mit externen Interrupts 
arbeiten. Ich suche ein manual, in dem die Interrupts beschrieben 
werden. Es ist nichts gescheites zu finden?!

danke und Gruss

M.B.

von Bernd B. (Firma: BB) (berndb)


Lesenswert?

Hallo M.B.

ich kenne mich jetzt mit ARM MCUs nicht so aus, habe aber schnell 
folgenden Link auf der KEIL Homepage gefunden:

http://www.keil.com/dd/docs/datashts/st/stm32f10xxx.pdf

Sieht so aus als ob alle nötigen Infos enthalten sind.

Gruß Bernd

von Ma B. (drumstick)


Lesenswert?

Hallo!

Danke für das Manual, aber Infos zu NVIC und welche Ports als externer 
Interrupt source verwendet werden können ist nicht ersichtlich.

Danke und Gruss

M.B.

von Random .. (thorstendb) Benutzerseite


Lesenswert?

Hi,

der NVIC sowie der SysTick sind Cortex-Mx eigene Peripherals, diese sind 
nciht in den Manuals der Hersteller beschrieben, sondern im Manual von 
ARM.

Zum NVIc selbst gibt es in der core_cm3.h der CMSIS ein paar ganz 
nützliche Funktionen, die die Konfiguration recht einfach machen, z.B.
1
static __INLINE void NVIC_EnableIRQ(IRQn_Type IRQn)

http://www.onarm.com/cmsis/download/10/version-2-0-of-the-cortex-microcontroller-software-interface-standard-cmsis/

VG,
/th.

von Ma B. (drumstick)


Lesenswert?

Hallo!

Danke für den Tip, je mehr ich darüber lese, desto weniger verstehe ich. 
Der Umstieg von PIC zu ARM ist beträchtlich.

Ich möchte ja nur mit dem Eingang an PortD13 einen Externen Interrupt 
auslösen. Das mit der Einsprungstelle der Interrupts verstehe ich auch 
noch nicht:
1
#define     INTERMASKREG            0x00002000
2
#define     FALLTRIGSELECREG        0x00002000
3
#define     EXINTCONFIGREG4         0x00000030                   
4
5
6
// Interrupt
7
// EXT-Interrupt
8
9
    EXTI    ->  IMR       = INTERMASKREG;                   //
10
    //EXTI    ->  EMR       = 0x00002000;                     //
11
    EXTI    ->  FTSR      = FALLTRIGSELECREG;               //
12
    //EXTI    ->  RTSR      = 0x00002000;                     //
13
    //EXTI    ->  SWIER     = 0x00002000;                     //
14
    AFIO   ->  EXTICR[3] = EXINTCONFIGREG4; //PD13 the EXT_Interrupt source
15
    //AFIO    ->  EVCR      = EVENTCONTREG;                   //
16
    NVIC    ->  ISER[0]    = 0x0000000A;                    // 
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
}

Was mach ich falsch, dass kein externer Interrupt ausgelöst wird??

Vielen Dank und Gruss

M.B.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.