你好,
我们使用的是SDK5的“老”物联网传感器,移植到Murata ZY (DA14580)。
SDK使用BMI160在操作期间中断(FIFO水印传感器读取)和在睡眠期间(运动唤醒),例如。
的ifndef BLE_APP_SENSOR_FUSION空白config_da1458x_pin_intr_1_enable {wrbl_env(无效)。wrbl_intr_1_cb = wkup_intr_1_cb;wkupct_register_callback (wrbl_env.wrbl_intr_1_cb);#ifdef USE_MAG_DRDY_INTR wkupct_enable_irq(0x0040, 0x0040, 1,0);//激活高#else WKUPCT_PIN_SELECT(INT1_PORT, INT1_PIN), WKUPCT_PIN_SELECT(INT1_PORT, INT1_PIN), 1,0);//激活低电平
我们想要使用另一个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:
// datasheet.h WKUP_QUADEC_IRQn = 9, /*结合了唤醒捕获定时器中断、GPIO中断和QuadDecoder中断*/
BR约翰内斯
设备:
嗨gme_johannes,
谢谢你的问题,但你已经为你的问题创建了一个类似的论坛线程。我会在下面的论坛回复你。请不要在论坛上重复你的帖子。
https://support.dialog-semiconductor.com/forums/post/dialog-smartbond-bluetooth-low-energy-%E2%80%93-software/use-multiple-wkupctenableirq-different
谢谢,PM_Dialog
抱歉,我一定是不小心创建了一个副本的线程,而不是修改我自己的文本作为预期。我已经在原帖中更正了。
请随时删除这个帖子。
BR约翰内斯
嗨gme_johannes,
没有问题。没事的,我就让它这样吧!如果您有任何后续问题,请更新其他论坛线程。
谢谢,PM_Dialog