GPIO边缘中断

⚠️
嗨,...感谢您来论坛。令人兴奋的消息!我们现在正在迁至我们的新论坛平台,将提供更好的功能,并包含在主对话框网站中。所有帖子和帐户都已迁移。我们现在只接受新论坛上的流量 - 请发布任何新线程https://www.dialog-seminile.com/support.。我们将在未来几天修复错误/优化搜索和标记。
3个帖子/ 0新
最后一篇
Eric Sc​​ammell.
离线
最后一次露面:3年3周前
加入:2017-03-15 13:28
GPIO边缘中断

我试图使用GPIO中断来检测某些交换机上的上升和下降沿,但是一旦我使用GPIO_ENABLEQ启用它们,我就会有些中断射击。
例如,我在最初低的引脚上有一个上升沿中断。在同一个引脚上也有一个下降沿中断,不会立即启动。
类似地,下降沿中断在最初高的引脚上触发。

是否有任何方法可以抑制这种直接的中断,以便我的边缘触发中断边缘上的火灾?

设备:
mt_dialog.
离线
最后一次露面:3个月4周前
职员
加入:2015-06-08 11:34
嗨埃里克,

嗨埃里克,

我不确定我理解这个问题,一旦我调用gpio_enableirq(),除非PIN处于触发中断的状态,否则我不会看到任何射击中断(如果您将中断设置为相反触发中断状态触发当前设置时,中断仍会触发?),您可以尝试在启用相应中断之前手动重置中断(GPIO_RESETIRQ(),并检查是否解决了您正在遇到的内容。关于边缘中断,在580中,GPIO中断是触发的级别级别,而不是边缘触发,但是在触发时,您将能够通过改变中断的极性来检测从高到低电平或相反的转换下面的片段:

void irq0_interrupt_cb(void)
{
if(gpio_getirqinputlevel(gpio0_irqn)== gpio_irq_input_level_low)
{
gpio_setactive(LED_PORT,LED_PIN);
gpio_setirqinputlevel(gpio0_irqn,gpio_irq_input_level_high);
}
别的
{
gpio_setinactive(LED_PORT,LED_PIN);
gpio_setirqinputlevel(gpio0_irqn,gpio_irq_input_level_low);
}
}

还要考虑您所面临的内容,请查看GPIO_ENABLEIRQ,例如,excowd_Wait的其他参数,也许有驱动中断的行有触发中断的尖峰。

谢谢mt_dialog.

Eric Sc​​ammell.
离线
最后一次露面:3年3周前
加入:2017-03-15 13:28
谢谢,我似乎有

谢谢,我似乎误解了API。我的印象是,可以配置中断为边缘检测,如果不是这种情况,那么我遇到的错误就会有意义。