请教app_easy_timer在周期唤醒休眠时的正交用法

⚠️
嗨,...感谢您来论坛。令人兴奋的消息!我们现在正在迁至我们的新论坛平台,将提供更好的功能,并包含在主对话框网站中。所有帖子和帐户都已迁移。我们现在只接受新论坛上的流量 - 请发布任何新线程https://www.dialog-seminile.com/support.。我们将在未来几天修复错误/优化搜索和标记。
5个帖子/ 0新
最后一篇
理查德
离线
最后一次露面:2年9个月前
加入:2017-01-08 04:10
请教app_easy_timer在周期唤醒休眠时的正交用法

嗨,对话框:
需求:用SPI接口外研料,需要需要时每隔20s采样一次。程序工作在扩展休眠,我签用的是app_easy_timer()接口周周性的时钟。

void timeout_cb(void)
{......
if(xx_timerid!= 0)
app_easy_timer_cancel(xx_timerid);//先取消

xx_timerid = app_easy_timer(2000,timeout_cb); //再启
}

问题:(1)第一次唤醒后,何数集团使用取消取消时代easy_timer_cancel(),然后功耗就升高,大厦在500 + ua。这是什么原因,这段代码有没有问题?是不可行时代人类不正常导致吗?

(2)另一个是,以上的实现好像只唤醒1-2次,后面后面法正派唤醒,所以想知道这个定时代幂的使用技巧是什么,有着哪些注意的地方,
比如,在timeout_cb内内还还能调调能使用app_easy_timer?

关键词:
设备:
Lanbu.
离线
最后一次露面:3年6个月前
加入:2017-10-27 04:44
我也想知道答案

我想知道答案,当我打开Arch_ext_sleep_on时,app_easy_timer(2000,timeout_cb)函数不起作用。时间起到了,程序不会进入
timeout_cb()回调函数。

mt_dialog.
离线
最后一次露面:2个月3周前
职员
加入:2015-06-08 11:34
嗨Richard,Landu,

嗨Richard,Landu,

如果您使用中文论坛在Chinsese中使用中国论坛,我将非常感谢,因为我无法理解这个问题。我只能假设您正在使用具有2000的值的app_easy_timer,并且回调不会执行回调,我无法使用ARCH_EXT_SLEEP_ON使用BLE_APP_PERITELAL项目来复制您所提到的内容,并将APP_ADC_DATA_UPDATE_TO更改为2000和VIA的值使用ARCH_SET_PXACT_GPIO()我能够看到回调执行。所以也许别的东西是你无法看到回调执行的原因,你在哪里设置计时器?或者您如何验证回调永远不会被调用吗?

谢谢mt_dialog.

理查德
离线
最后一次露面:2年9个月前
加入:2017-01-08 04:10
嗨,mt_dialog,

嗨,mt_dialog,

谢谢你的及时回应。
对不起,我想也许英语或中国人会没事的。我昨天解决了这个问题。未触发回调的原因是我称之为计时器Func的地方。它应该在BLE核心重置后调用。所以我将更改为呼叫App_easy_timer此Func在“user_app_adv_start”中,然后它工作。

Lanbu.
离线
最后一次露面:3年6个月前
加入:2017-10-27 04:44
我也解决了这个问题

我也解决了这个问题。我发现当我在线使用MDK Debug时,下载并运行程序,TimeOut_cb()函数不起作用。但是当我退出调试模式时,它运作了。
当我使用Arch_sleep_off时,RAN MDK调试,TimeOut_cb()函数工作,我可以调试程序并设置断点。