关于6410外部中断的请教
在飞凌6410上写的一个外部中断驱动,为什么我申请的驱动是上升沿中断,但在高电平的时候,还是会触发中断处理函数了?enable_irq(IRQ_EINT(0));
ret = request_irq(IRQ_EINT(0), irq_function, IRQF_TRIGGER_RISING/*IRQF_TRIGGER_FALLING*/, "spidata_irq", NULL);
上述函数申请了一个上升沿的中断,irq_function这个是中断处理函数。irq_function这个函数中,现在只是在做内核打印,
现在的情况是,我只要给出一个高电平,它就不停的打印,这个是为什么呢?请有经验的指导原因,谢谢!
在设置管脚中断触发的地方设置,不是这里 7802848 发表于 2017-5-16 13:45
在设置管脚中断触发的地方设置,不是这里
我有配置管脚的驱动功能的:
gpio_direction_input(S3C64XX_GPL(8));
s3c_gpio_setpull(S3C64XX_GPL(8), S3C_GPIO_PULL_DOWN);
s3c_gpio_cfgpin(S3C64XX_GPL(8), S3C_GPIO_SFN(3)); //setexternal interrupt
不知道你说的是不是这个? 本帖最后由 7802848 于 2017-5-16 14:19 编辑
sinc_mark 发表于 2017-5-16 14:09
我有配置管脚的驱动功能的:
gpio_direction_input(S3C64XX_GPL(8));
不完整 还有设置中断输入吧 应该有个设置管脚为中断输入的地方,设置边沿触发还是电平触发,上升沿或者下降沿,高电平或者低电平 7802848 发表于 2017-5-16 14:17
不完整 还有设置中断输入吧 应该有个设置管脚为中断输入的地方,设置边沿触发还是电平触发,上升沿或者下 ...
ret = request_irq(IRQ_EINT(0), irq_function, IRQF_TRIGGER_RISING/*IRQF_TRIGGER_FALLING*/, "spidata_irq", NULL);
这句就是设置为上升沿触发啊?难道这句有错? void io_irq_enable_edge(int port,int pin,int type)
request_irq不是设置硬件
页:
[1]