Question
EXTI interupt problem
Posted on March 31, 2014 at 02:01
Hi i have a problem with interuption EXTI. I want to execute my principal function with an interuption with EXTI but it dosen't work ! only one instruction does work, this is my code. plz some one help me.
- void EXTI_IRconfig(void)
- {
- NVIC_InitTypeDef NVIC_InitStructure;
- SYSCFG_EXTILineConfig(EXTI_PortSourceGPIOA, EXTI_PinSource3);
- /* Configure EXTI Line3 */
- EXTI_InitStructure.EXTI_Line = EXTI_Line3;
- EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt;
- EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Rising;
- EXTI_InitStructure.EXTI_LineCmd = ENABLE;
- EXTI_Init(&EXTI_InitStructure);
- NVIC_InitStructure.NVIC_IRQChannel = EXTI3_IRQn;
- NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 1;
- NVIC_InitStructure.NVIC_IRQChannelSubPriority = 1;
- NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
- NVIC_Init(&NVIC_InitStructure);
- }
/*******************************************/
#include ''stm32f4xx_it.h''/*********************************************/- extern capteurIR;
- void EXTI3_IRQHandler(void)
- {
- if(EXTI_GetITStatus(EXTI_Line3) != RESET)
- {
- capteurIR=GPIO_ReadInputDataBit(GPIOA, GPIO_Pin_3);
- EXTI_ClearITPendingBit(EXTI_Line3);
- }
- if (GPIO_ReadInputDataBit(GPIOA, GPIO_Pin_3)!=1)
- {
- GPIO_ToggleBits(GPIOD, GPIO_Pin_15);
- }
- else
- {
- GPIO_ResetBits(GPIOD, GPIO_Pin_15);
- }
- }