嗨,对话框,
我有关于如何在DA1458X_SDK示例中的BLE_APP_ALL_IN_ONE项目中MAIN_FUND()中的WHINH循环中允许外设中断的问题。
作为示例代码,如果(ble_app_present),始终调用global_int_stop()。
我想如果IRQ始终禁用在无限循环中,则不检测到任何正常的外围中断,是吗?
因此,如果使用一些外设中断,我认为您应该删除Global_int_stop()。
我觉得奇怪的是,如果在if(ble_app_present)子句中调用wfi(),因此为什么必须禁用IRQ。
是否正确或有其他方法可以在主循环中允许外围中断?
我期待着别人的好答案。
最好的,
设备:
嗨Diogenes,
当系统想要禁用它可以处理的所有中断时,使用Global_int_stop()宏。此宏在设备进入睡眠之前调用,而不是在睡眠模式下。这意味着在此宏之后,系统将继续接收中断,但只触发中断的处理程序。在禁用中断以执行决定移动到睡眠模式的检查时,调用WFI()。如果睡眠前有任何挂起的中断,则会触发Global_Int_start(),并且系统可以开始再次处理中断。因此,您的结论是,如果IRQ始终禁用无限循环,则不检测到任何正常的外围中断,不正确,强烈建议不要删除global_int_stop()。此外,请注意,如果设备处于睡眠模式,则只能从唤醒控制器唤醒,并且通过任何其他中断,因为所有外围块都关闭。
谢谢,PM_DIALOG.