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?
Es gibt EXTI_Mode_Interrupt und EXTI_Mode_Event. http://www.st.com/content/ccc/resource/technical/document/reference_manual/3d/6d/5a/66/b4/99/40/d4/DM00031020.pdf/files/DM00031020.pdf/jcr:content/translations/en.DM00031020.pdf Siehe ab Kapitel 12.2
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; |
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?
>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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.