你好,
我们使用的是“旧”的IoT传感器与SDK5,移植到村田ZY(DA14580)。
该SDK操作(FIFO水印传感器读出),并在睡眠期间(运动唤醒),例如过程中使用的BMI160用于中断
的#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_enable_irq(WKUPCT_PIN_SELECT(INT1_PORT,INT1_PIN),WKUPCT_PIN_SELECT(INT1_PORT,INT1_PIN),1,0);//活性低#ENDIF}
我们要使用另一个GPIO,中断执行特定的命令,它应该运行过程中,也可以在休眠模式(因此我们不能用GPIO_EnabeIRQ)工作。
我的理解是:
1)多的GPIO可以配置为唤醒源。
2)对于wkupct_enable_irq它不可能为不同的中断源寄存器不同回调函数。
3)如果wkupct_register_callback()在整个代码调用多次,最后注册的回调将被使用。
正确的?
题:
4)是否有注册,我可以醒来,告诉我这脚是断源后,读?从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,
关于你的第一个,问题,是的,你可以配置多个GPIO作为唤醒源。请检查下面的代码片段:
关于你的第二个问题,你可以请你澄清呢?你是正确的,在wkupct_register_callback()你可以注册只有一个回调函数。所以,如果我能正确理解,你想做到的是从不同的唤醒中断触发不同的回调函数?例如,如果你从GPIO_1获得中断时,应callback_1执行,如果你从GPIO_2获得中断,应执行的callback_2。
谢谢,PM_DIALOG.
对,那是正确的。
从HTTPS://support.dialog-semiconductor.com/forums/post/dialog-smartbond-bl ...我明白我可以检查GPIO状态中断被触发后。
这会不会是速度不够快,无论如何?将在GPIO状态总是长到足够多的保留,如果我在回调函数做的第一件事就是检查它的状态呢?
嗨gme_johannes,
在过去的论坛主题,您刚才提到,MT_Dialog正确曾提到,没有寄存器,将指示端口/引脚发生中断,那么你必须阅读的销权地位的设备已被唤醒后根据引脚的状态,你将必须决定哪些回调函数将被触发。
谢谢,PM_DIALOG.
谢谢你,我将试图解决我的问题这样。
嗨gme_johannes,
感谢您接受我的答案。请让我知道,如果您有任何其他问题。
谢谢,PM_DIALOG.