公告

大中华汽车电子生态圈社区并入开发者社区- 更多资讯点击此

Tip / 登入 to post questions, reply, level up, and achieve exciting badges. Know more

cross mob

xmc4700外部中断配置好后进不去其中断服务函数

xmc4700外部中断配置好后进不去其中断服务函数

hhh789
Level 0
Level 0
在使用xmc4700的ERU0寄存器配置外部中断,检测下降沿,具体配置情况如图,但始终无法进入ERU0_0_IRQHandler的中断服务函数,陷入启动文件内的死循环了,,,,,经过调试查看NVIC的中断标志位能够检测到下降沿事件请求,但就是进不去中断服务函数,求大神帮帮忙:'(感谢啦~
ERU配置如下:
XMC_ERU_ETL_CONFIG_t	eru_config;
XMC_ERU_OGU_CONFIG_t ogu_config;
eru_config.input_a = XMC_ERU_ETL_INPUT_A0; //对应P0.1口 eru_config.output_trigger_channel = XMC_ERU_ETL_OUTPUT_TRIGGER_CHANNEL0; eru_config.enable_output_trigger = 1; eru_config.status_flag_mode =1; eru_config.edge_detection = XMC_ERU_ETL_EDGE_DETECTION_FALLING; eru_config.source = XMC_ERU_ETL_SOURCE_A; XMC_ERU_ETL_Init(XMC_ERU0, 0, &eru_config); //配置OGU输出触发事件--->NVIC.ERU0.SR0 ogu_config.service_request = XMC_ERU_OGU_SERVICE_REQUEST_ON_TRIGGER;
// ogu_config.service_request = XMC_ERU_OGU_SERVICE_REQUEST_DISABLED;
// ogu_config.pattern_detection_input = XMC_ERU_OGU_PATTERN_DETECTION_INPUT0; ogu_config.enable_pattern_detection = 1; XMC_ERU_OGU_Init(XMC_ERU0, 0, &ogu_config); //中断优先级设置及使能NVIC中断
// NVIC_SetPriorityGrouping(1);
// NVIC_SetPriority(ERU0_0_IRQn, 2); __NVIC_ClearPendingIRQ(ERU0_0_IRQn); __NVIC_EnableIRQ(ERU0_0_IRQn);
中断服务函数如下:
void ERU0_0_IRQHandler(void)  //中断函数
{ if(__NVIC_GetPendingIRQ(ERU0_0_IRQn)!=0) //判断是否真的进入中断 { XMC_GPIO_ToggleOutput(XMC_GPIO_PORT5, 8); } __NVIC_ClearPendingIRQ(ERU0_0_IRQn); //清除中断标志位
};
0 点赞
1885 次查看
5 评论