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); //清除中断标志位
};
只有注册用户才能在此添加评论。 如果您已经注册,请登录。 如果您还没有注册,请注册并登录。