Forum: Mikrocontroller und Digitale Elektronik STM32F4 External Interrupt: Was ist der Interrupt Mode?


von dulli (Gast)


Lesenswert?

hallo,

ich habe von folgender Homepage ein Beispiel für ein externes Interrupt 
auf dem STM32F4:

http://stm32f4-discovery.net/2014/08/stm32f4-external-interrupts-tutorial/

Bei der Initialisierung wird folgendes gemacht:
/* Interrupt mode */
EXTI_InitStruct.EXTI_Mode = EXTI_Mode_Interrupt;

Was soll dieser Interrupt mode sein, beziehungsweise welche Modi sind 
die Alternative?

von hp-freund (Gast)


Lesenswert?


von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

Das steht auch in der cmsis_lib/include/stm32f4xx_exti.h:
1
/** 
2
  * @brief  EXTI mode enumeration  
3
  */
4
5
typedef enum
6
{
7
  EXTI_Mode_Interrupt = 0x00,
8
  EXTI_Mode_Event = 0x04
9
}EXTIMode_TypeDef;

von dulli (Gast)


Lesenswert?

Ich habe mir das Kapitel im Reference Manual zum EXTI durchgelesen, 
allerdings habe ich trotzdem noch Fragen. Ich habe das nun so 
verstanden, dass ich bei einem Pegelwechsel an einem Pin entweder ein 
Interrupt oder ein Event auslösen kann.

Was soll nun der Vorteil eines Events bzw. wann verwendet man ein Event? 
Ist dies dann wie bei dem Interrupt, dass ich auch einen Event Handler 
habe?

von nixda (Gast)


Lesenswert?

>Was soll nun der Vorteil eines Events bzw. wann verwendet man ein Event?

Hab' mich nicht allzusehr darin vertieft. Sieht aus, als ob man damit 
die CPU aufwecken könnte, die per WFE (Wait-for-Event) in den Schlaf 
versetzt wurde - siehe auch ARMv7M-ARM (arch ref man)

Da es separate Mask Regs für Interrupt und Events gibt müsste auch 
beides parallel möglich sein.

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.