嗨,对话框:
我们知道,当DA准备进入睡眠时,它将关闭外围的力量,所以当它在睡眠中。外部中断是否可以工作?
谢谢溧阳
当然它会很好。有很多帖子讨论外部中断,也许你应该先阅读这些。
嗨溧阳,
除非论坛的帖子外,请查看文档UM-B-004外围驱动程序和UM-B-006睡眠模式配置。
谢谢mt_dialog.
嗯,我已经阅读了文档UM-B-004外围驱动程序和UM-B-006睡眠模式配置。我总有一些问题。我可以在gpio2_handler()(我的测试证明它的测试)中发一条消息吗?如果我能,何时可以发送消息?UM-B-006所述外部中断是异步事件,它无法使BLE核心活动。等待同步活动?
您可以将来自ISR的消息发送到内核,使用KE_MSG_SEND_BASIC()函数到您的TASK_APP(检查通过中断处理程序发送消息的SMARTTAG参考设计)。该文档说明如果存在外部中断,则大部分可能是BLE核心会睡眠,这就是为什么称为异步中断。如果存在异步中断,则可以唤醒BLE核心。
如果有异步中断如何唤醒BLE核心?
请检查App_button_press_cb()函数中的SmartTag代码,软件获取外部按钮中断唤醒BLE并发送消息。
嗨,对话框,像这样?
if(app_ble_ext_wakeup_get()){//唤醒这里的ble
#if(ext_sleep_enabled)app_set_extended_sleep();#elif(deep_sleep_enabled)app_set_deep_sleep();#别的app_disable_sleep();#万一setbits32(gp_control_reg,ble_wakeup_req,1);app_ble_ext_wakeup_off();ke_msg_send_basic(app_wakeup_msg,task_app,null);}app_button_enable();
问题:1如果函数app_ble_ext_wakeup_get()返回false,则意味着什么意思?这是这是醒来吗?setbits32(gp_control_reg,ble_wakeup_req,1);3为什么我需要打电话给这个职能?app_ble_ext_wakeup_off();
谢谢溧阳。
app_ble_ext_wakeup_get()检查BLE核心是否在永久性睡眠中......您可以在数据表中找到BLE_WAKEUP_REQ的内容。此外,您还可以找到为什么需要在文档UM-B-006中调用app_ble_ext_wakeup_off()。
在函数app_ble_ext_wakeup_off()中,仅分配一个标志---- sleep_ext_force。该功能的简短将BLE核心放在永久睡眠中。它可以工作吗?为什么?
函数app_ble_ext_wakeup_off()所做的是禁用DA将仅从外部中断唤醒的功能。文档UM-B-006指示如果只从外部中断唤醒(您已设置App_ble_ext_wakeup_on()),并且您希望通过调用app_ble_ext_wakeup_off()您必须恢复默认操作模式。或者BLE将无法醒来以便为博勒事件提供服务。
当然它会很好。有很多帖子讨论外部中断,也许你应该先阅读这些。
嗨溧阳,
除非论坛的帖子外,请查看文档UM-B-004外围驱动程序和UM-B-006睡眠模式配置。
谢谢mt_dialog.
嗨,对话框:
嗯,我已经阅读了文档UM-B-004外围驱动程序和UM-B-006睡眠模式配置。我总有一些问题。
我可以在gpio2_handler()(我的测试证明它的测试)中发一条消息吗?如果我能,何时可以发送消息?UM-B-006
所述外部中断是异步事件,它无法使BLE核心活动。等待同步活动?
谢谢溧阳
嗨溧阳,
您可以将来自ISR的消息发送到内核,使用KE_MSG_SEND_BASIC()函数到您的TASK_APP(检查通过中断处理程序发送消息的SMARTTAG参考设计)。该文档说明如果存在外部中断,则大部分可能是BLE核心会睡眠,这就是为什么称为异步中断。如果存在异步中断,则可以唤醒BLE核心。
谢谢mt_dialog.
嗨,对话框:
如果有异步中断如何唤醒BLE核心?
谢谢溧阳
嗨溧阳,
请检查App_button_press_cb()函数中的SmartTag代码,软件获取外部按钮中断唤醒BLE并发送消息。
谢谢mt_dialog.
嗨,对话框,
像这样?
if(app_ble_ext_wakeup_get())
{
//唤醒这里的ble
#if(ext_sleep_enabled)
app_set_extended_sleep();
#elif(deep_sleep_enabled)
app_set_deep_sleep();
#别的
app_disable_sleep();
#万一
setbits32(gp_control_reg,ble_wakeup_req,1);
app_ble_ext_wakeup_off();
ke_msg_send_basic(app_wakeup_msg,task_app,null);
}
app_button_enable();
问题:1如果函数app_ble_ext_wakeup_get()返回false,则意味着什么意思?
这是这是醒来吗?setbits32(gp_control_reg,ble_wakeup_req,1);
3为什么我需要打电话给这个职能?app_ble_ext_wakeup_off();
谢谢溧阳。
嗨溧阳,
app_ble_ext_wakeup_get()检查BLE核心是否在永久性睡眠中......您可以在数据表中找到BLE_WAKEUP_REQ的内容。此外,您还可以找到为什么需要在文档UM-B-006中调用app_ble_ext_wakeup_off()。
谢谢mt_dialog.
嗨,对话框:
在函数app_ble_ext_wakeup_off()中,仅分配一个标志---- sleep_ext_force。该功能的简短将BLE核心放在永久睡眠中。
它可以工作吗?为什么?
谢谢溧阳
嗨溧阳,
函数app_ble_ext_wakeup_off()所做的是禁用DA将仅从外部中断唤醒的功能。文档UM-B-006指示如果只从外部中断唤醒(您已设置App_ble_ext_wakeup_on()),并且您希望通过调用app_ble_ext_wakeup_off()您必须恢复默认操作模式。或者BLE将无法醒来以便为博勒事件提供服务。
谢谢mt_dialog.