睡眠模式和无代码

⚠️
您好,谢谢您来到论坛。令人兴奋的消息!我们正在迁移到新的论坛平台,该平台将提供更好的功能,并包含在主对话网站中。所有帖子和帐户都已迁移。我们现在只接受新论坛上的流量-请在//www.wsdof.com/support. 我们将在未来几天内修复bug/优化搜索和标记。
3个员额/0个新员额
最后一篇文章
gert186
离线
最后一次见到:1年8个月前
加入:2016-04-21 12:59
睡眠模式和无代码

嗨,我做了我自己的无密码项目,关于EXT.Sleep模式有一些问题

我实现了你的无密码项目的功能(做得好)准备睡觉和起床

我的问题是我想用ATr+sleep=1将BLE放入ext.sleep
它会在1小时内自动醒来。

我发现:
#定义CFG\u最大睡眠时间\u周期性唤醒时间\u毫秒500//0.5s

#定义CFG\u最大睡眠时间\u外部唤醒时间\u毫秒10000//10秒

所以我想我应该把它设为1h,意思是1h的3600000。

然后如果我发送命令ATr+SLEEP,它将休眠1小时

但是我应该删除一些额外的东西吗?

就像UART的中断一样,因为它没有附加任何内容。BLE(PAN1740)是独立的。

wkupct_寄存器_回调(用户_唤醒);

//指定计数器IRQ的IO引脚、极性、事件计数和去抖动时间
wkupct\u启用\u irq
(
WKUPCT_引脚_选择(UART2_RX_GPIO_端口,UART2_RX_GPIO_引脚),//UART RX
WKUPCT_引脚_极性(UART2_RX_GPIO_端口、UART2_RX_GPIO_引脚、WKUPCT_引脚_极性_低),//极性低
1,//事件数
0//去抖动时间=0毫秒
);

我应该删除wkupct\u enable\u irq吗?自动唤醒后是否会调用用户_wakeup?

设备:
MT_对话框
离线
最后一次见到:6个月3周前
工作人员
加入:2015-06-08 11:34
嗨,gert186,

嗨,gert186,

我认为您误解了一些关于无代码和580如何运行的事情。CFG_MAX_SLEEP_DURATION_EXTERNAL_WAKEUP_MS是一个#定义,它将确定设备的定期唤醒,其默认值为10秒,因此如果没有不可恢复事件,设备将在睡眠模式下停留最长10秒,然后它将立即唤醒并返回睡眠状态。在无代码示例中,如果您只是停止广告并进入睡眠状态,您将能够看到设备在10秒内周期性地醒来并返回睡眠状态(您是否具有外部唤醒功能),即使您在codeless的源代码中放置了1个小时,并且希望看到设备广告,您也应该在设备唤醒后立即实现启动广告功能,您将无法通过命令执行该功能。您必须附加将在设备从周期性唤醒中唤醒时立即执行的代码。从外部事件和不可预知事件中醒来是两种不同的功能,您可以同时拥有这两种功能。因此,为了在无代码中实现类似的功能,您必须在.app\u on\u ble\u powered和.app\u going\u to\u sleep函数中附加一些代码:

将以下功能附加到app_on_ble_powered中,以便当设备从中定期唤醒时,可以检查是否设置了adv_on_wakeup(额外变量,用于检查是否应启动广告)标志,app_on_ble_powered是设备每次定期唤醒时执行的回调:

拱门、主回路、回叫、返回用户、上电(无效)
{
如果(自动唤醒)
{
用户_广告();
adv_on_wakeup=0;
}
返回GOTO_睡眠;
}

并在.app_going_to_sleep中附加以下函数,以便在进入睡眠状态时设置该标志,并且不再进行广告宣传。

无效用户正在进入睡眠(睡眠模式)
{
if(无代码环境间隙活动==空闲)
adv_on_wakeup=1;
}

使用上述功能将允许您进入永久睡眠状态,并在定期醒来后立即开始广告宣传。

关于配置定期唤醒,请查看下面的记录单,因为该机制存在故障。

https://support.dialog-semiconductor.com/forums/post/dialog-smartbond-bl...

此外,如果您想要这种功能性,我不确定无代码将是您项目的合适基础,因为它是一个允许您使用UART接口的命令对设备进行编程的项目。

谢谢你的对话

gert186
离线
最后一次见到:1年8个月前
加入:2016-04-21 12:59
完美的谢谢

完美的谢谢