嗨,对话框:
需求:用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?
关键词:
设备:
我想知道答案,当我打开Arch_ext_sleep_on时,app_easy_timer(2000,timeout_cb)函数不起作用。时间起到了,程序不会进入
timeout_cb()回调函数。
嗨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.
嗨,mt_dialog,
谢谢你的及时回应。
对不起,我想也许英语或中国人会没事的。我昨天解决了这个问题。未触发回调的原因是我称之为计时器Func的地方。它应该在BLE核心重置后调用。所以我将更改为呼叫App_easy_timer此Func在“user_app_adv_start”中,然后它工作。
我也解决了这个问题。我发现当我在线使用MDK Debug时,下载并运行程序,TimeOut_cb()函数不起作用。但是当我退出调试模式时,它运作了。
当我使用Arch_sleep_off时,RAN MDK调试,TimeOut_cb()函数工作,我可以调试程序并设置断点。