App_easy_timer可以用来唤醒da从深度睡眠模式?

10个帖子/ 0新
最后发表
achao1104
离线
最后看到:5年5个月前
掌握
加入:2015-12-24 10:56
App_easy_timer可以用来唤醒da从深度睡眠模式?

在一篇文章中,它提到:
请注意ke_timer_set不能将DA14580从睡眠模式中唤醒:只能使用app_timer_set。
我检查了app_easy_timer的代码,它看起来像使用ke_timer_set,所以它不能用来唤醒?app_timer_set和ke_timer_set之间有什么区别?
彼得

设备:
achao1104
离线
最后看到:5年5个月前
掌握
加入:2015-12-24 10:56
请帮助

请帮助

MT_dialog
离线
最后看到:4个月2周之前
工作人员
加入:2015-06-08 34
嗨achao1104,

嗨achao1104,

似乎这两个函数之间没有本质的区别,我能看到的唯一区别是,app_timer_set确保延迟时间小于KE_TIMER_DELAY_MAX。你能不能指出你不应该使用ke_timer_set来唤醒。

谢谢mt_dialog.

achao1104
离线
最后看到:5年5个月前
掌握
加入:2015-12-24 10:56
谢谢,我有一样的

谢谢,我也有同样的想法,让我去找找帖子。

achao1104
离线
最后看到:5年5个月前
掌握
加入:2015-12-24 10:56
http://support.dialog.
MT_dialog
离线
最后看到:4个月2周之前
工作人员
加入:2015-06-08 34
嗨achao1104,

嗨achao1104,

我认为这篇文章指出你不应该使用ke_timer_set,只是出于安全原因,不要超过计时器的最大时间限制。

谢谢mt_dialog.

梁云浩
离线
最后看到:3年5个月前
加入:2016-03-05 38
嗨,对话框

嗨,对话框
Da14580处于延长睡眠状态时,app_easy_timer是否仍然工作?我设置了一个app_easy_timer来定期从延长睡眠中唤醒Da14580,然后发送一个广告包。当我设置延迟时间很小(5s或30s)时,它工作得很好。但是,当我设置延迟值如18000或24000(低于KE_TIMER_DELAY_MAX)时,它有时会在计时器过期之前突然醒来,什么也不做。我通过测量电流来检查Da14580是否处于长睡眠状态。什么类型的计时器可以用于扩展睡眠,app_easy_timer或app_timer_set?
如何在延迟过期后使用app_timer_set来调用像app_easy_timer这样的函数?我应该把函数放在处理程序中吗?谢谢。

MT_dialog
离线
最后看到:4个月2周之前
工作人员
加入:2015-06-08 34
你好,梁云浩,

你好,梁云浩,

是的计时器仍然工作在设备延长睡眠,对于你的经历我想什么你看到的是设备的定期醒来,设备配置为每10秒醒来如果没有祝福活动(内核计时器被认为也祝福活动)。因此,该设备每10秒就会醒来,什么也不做,然后回到睡眠状态,直到计时器结束。

app_easy_timer()是在SDK5中使用ke_timers的正确函数,app_timer_set只是来自以前sdk的一个旧api, dialog提供的大多数SIG配置文件仍然使用这个api来设置定时器,为了使用app_timer_set,你可以看一下BAS配置文件,它实现了客户机上更新值的这个api,尽管我没有看到任何理由使用那个api。

谢谢mt_dialog.

梁云浩
离线
最后看到:3年5个月前
加入:2016-03-05 38
嗨,对话框

嗨,对话框
在我的定制板上,它不会在10秒内醒来。有时它会在进入长时间睡眠后立即醒来。有时它工作很好很长一段时间,突然醒来。
它所需要的时间是不可预测的。我已经将CFG_MAX_SLEEP_DURATION_EXTERNAL_WAKEUP_MS设置为300000,仍然有相同的问题。
在我的应用程序中,我使用两个内核定时器。一个设置为3秒,它停止发布(app_easy_gap_advertise_stop)。当广告停止时,“user_app_adv_undirect_complete”回调函数将另一个定时器设置一定时间(1分钟或更长时间),然后系统进入延长睡眠状态。从理论上讲,Da14580将在第二个计时器到期时醒来,并继续执行上述步骤。当我设置app_easy_timer或者我在上面的步骤中出错时,我还应该做什么?过期后我需要取消吗?谢谢。

MT_dialog
离线
最后看到:4个月2周之前
工作人员
加入:2015-06-08 34
你好,梁云浩,

你好,梁云浩,

你正在使用的LP时钟是什么,是XTAL32还是RCX ?

您所遵循的步骤是正确的,不,您不必在计时器已经过时取消它,通过复制您的配置,我无法通过使用XTAL复制您正在经历的事情。尝试在基本示例中进行相同的配置,只需从user_app_adv_undirect_complete()中删除app_easy_timer(),并用一个计时器替换它,该计时器将计数到广告函数。可能设备被外部中断或其他东西唤醒。

如果你正在使用RCX,你看到设备正在苏醒并重新进入睡眠,这是一个已知的问题,请看看下面的线程,并检查最后的帖子中的代码片段。

https://support.dialog-semicondiondiondum/forums/post/dialog-smartbond-bl ...

谢谢mt_dialog.