对不同的回调使用多个wkupct\u enable\u irq?

⚠️
您好,谢谢您来到论坛。令人兴奋的消息!我们正在迁移到新的论坛平台,该平台将提供更好的功能,并包含在主对话网站中。所有帖子和帐户都已迁移。我们现在只接受新论坛上的流量-请在//www.xmece.com/support.我们将在未来几天内修复bug/优化搜索和标记。
6个员额/0个新员额
最后一篇文章
约翰内斯先生
离线
最后一次见到:4个月3周前
加入:2017-12-22 10:09
对不同的回调使用多个wkupct\u enable\u irq?

你好,

我们正在使用SDK5的“旧”物联网传感器,并将其移植到Murata ZY(DA14580)。

SDK使用BMI160在操作期间(传感器读出的FIFO水印)和睡眠期间(运动唤醒)进行中断,例如:。

#(void){wrbl-env.wrbl.wrbl.wrbl.wrbl(blblbl)文文文文文文文文中(blbl)文文中(blblbl)文文中(1)电路电路断路电路电路电路电路电路电路电路电路电路电路电路电路电路电路电路电路电路电路电路电路电路电路电路电路电路电路电路电路电路电路电路电路电路电路电路电路电路电路电路电路电路电路电路电路电路电路电路电路电路电路电路电路电路电路电路电路电路电路电路电路电路电路电路电路电路电路电路电路电路电路电路电路电路电路电路电路电路电路电路电路电路电路电路电路电路电路电路电路电路电路电路电路电路电路电路电路电路电路电路电路电路电路电路电路电路电路电路电路电路电路电路电路电路电路电路电路电路电路电路电路电路电路电路电路电路电路电路电路电路电路电路电路电路电路电路电路电路电路电路电路电路电路电路电路电路电路电路电路电路电路电路电路电路电路电路电路电路电路电路电路电路电路电路电路电路电路电路电路电路电路电路电路电路电路电路wkupct_引脚_选择(INT1_端口,INT1_引脚),1,0);//低电平有效#endif}

我们希望使用另一个GPIO作为中断来执行特定的命令,它应该在操作期间工作,但也在睡眠模式期间工作(因此我们不能使用GPIO_EnabeIRQ)。

我的理解是:

1) 可以将多个GPIO配置为唤醒源。
2) 对于wkupct_enable_irq,不可能为不同的中断源注册不同的回调函数。
3) 如果在整个代码中多次调用wkupct_register_callback(),则将使用上次注册的回调。
对的?

问题:
4) 是否有一个寄存器,我可以在醒来后读取,告诉我哪个pin是中断源?从https://support.dialog-semiconductor.com/forums/post/dialog-smartbond-bl...我明白这是不可能的?
5) 但是使用NVIC_GetPendingIRQ呢?不同的中断是否分配了不同的IRQn?
-->我发现他们都使用相同的IRQn:

//数据表.h WKUP_QUADEC_IRQn=9,/*组合了唤醒捕获计时器中断、GPIO中断和四位解码器中断*/

约翰内斯酒店

设备:
PM_对话框
离线
最后一次见到:2天10小时前
职员
加入:2018-02-08 11:03
嗨,格梅·约翰内斯,

嗨,格梅·约翰内斯,

关于第一个问题,是的,您可以将多个GPIO配置为唤醒源。请检查下面的代码段:

wkupct_启用_irq(wkupct_引脚_选择(GPIO_按钮_端口、GPIO_按钮_引脚)| wkupct_引脚_选择(GPIO_按钮_2端口、GPIO_按钮_2引脚)、wkupct_引脚_极性(GPIO_按钮_端口、GPIO_按钮_引脚、wkupct_引脚_极性_低)| wkupct_引脚_极性(GPIO_按钮_2端口、GPIO_按钮、UPU引脚1、WKu引脚);

关于你的第二个问题,你能澄清一下吗?您是正确的,在wkupct_register_callback()中,您只能注册一个回调函数。所以,如果我能够正确理解的话,您想要完成的是从不同的唤醒中断触发不同的回调函数?例如,如果从GPIO_1获得中断,则应执行回调_1;如果从GPIO_2获得中断,则应执行回调_2。

谢谢,下午好

约翰内斯先生
离线
最后一次见到:4个月3周前
加入:2017-12-22 10:09
是的,没错。

是的,没错。

https://support.dialog-semiconductor.com/forums/post/dialog-smartbond-bl...我知道我可以在中断触发后检查GPIO状态。

这在任何情况下都足够快吗?如果我在回调函数中做的第一件事是检查它的状态,GPIO状态是否总是保持足够长的时间?

PM_对话框
离线
最后一次见到:2天10小时前
职员
加入:2018-02-08 11:03
嗨,格梅·约翰内斯,

嗨,格梅·约翰内斯,

在您之前提到的论坛线程中,MT_Dialog正确地提到没有寄存器会指示中断发生的端口/引脚,因此您必须在设备被唤醒后立即读取引脚的状态,并根据引脚状态决定触发哪个回调函数他被激怒了。

谢谢,下午好

约翰内斯先生
离线
最后一次见到:4个月3周前
加入:2017-12-22 10:09
谢谢你,我会尽力的

谢谢你,我将尝试用这种方式解决我的问题。

PM_对话框
离线
最后一次见到:2天10小时前
职员
加入:2018-02-08 11:03
嗨,格梅·约翰内斯,

嗨,格梅·约翰内斯,

谢谢你接受我的回答。如果您有任何其他问题,请告诉我。

谢谢,下午好