从唤醒中断调用app_timer_set()

⚠️
嗨,...感谢您来论坛。令人兴奋的消息!我们现在正在迁至我们的新论坛平台,将提供更好的功能,并包含在主对话框网站中。所有帖子和帐户都已迁移。我们现在只接受新论坛上的流量 - 请发布任何新线程https://www.dialog-seminile.com/support.。我们将在未来几天修复错误/优化搜索和标记。
6个帖子/ 0新
最后一篇
Wangyi190228.
离线
最后一次露面:6个月前1年
加入:2016-08-05 03:34
从唤醒中断调用app_timer_set()

为什么要调用App_Timer_Set(App_acc_Timer,Task_App,50)在静态Void App_button_press_CB(void)中,当芯片唤醒时,有时计时器无法及时执行,并且将被延迟几分钟?

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

嗨wangyi190228,

由于您使用的是app_timer_set()函数,我假设您在SDK 5之前使用旧SDK,其中介绍了App_easy_Timer(),我建议继续前进到最新的SDK以便构建FW并使用app_easy_timer()api解决了您正在遇到的问题。app_timer_set()有时执行的原因和其他次数不作为,因为您设置计时器时,BLE核心并不激活,因此您可以获得异常的计时器功能。App_easy_Timer实现的工作是检查BLE核心是否处于活动状态,如果不会从唤醒中断发送消息,并且当邮件计划时,它将设置计时器,否则如果BLE Core是Active刚刚设置计时器一般。我还改变了帖子的标题,请不要在英语论坛上发布。

谢谢mt_dialog.

Wangyi190228.
离线
最后一次露面:6个月前1年
加入:2016-08-05 03:34
你好,我试图改变

您好,我试图将App_Timer_Set()更改为App_easy_Timer()中的中断回调函数静态Void App_Button_press_CB(void),但运行程序的结果没有改变,与更改之前相同,为什么是什么?

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

嗨wangyi190228,

我无法复制您所提到的内容,使用BLE_APP_SLEEPMODE项目并在APP_BUTTON_PRESS_CB()函数中插入定时器集(APP_EASY_TIMER()),按下每个定时器按下按钮执行回调,并从100多个按钮按钮按下并始终在500ms后执行回调,也许您可​​以共享一些代码以复制您提到的内容?你用什么例子来执行测试?代码上的更改是什么?如何验证回调不会发生回调吗?

谢谢mt_dialog.

Wangyi190228.
离线
最后一次露面:6个月前1年
加入:2016-08-05 03:34
我上传了代码,是

我上传了代码,问题代码子appcodoon.c文件,现在代码是app_timer_set(),但是在使用app_easy_timer()按照建议使用相同的效果。我在SDK5.0.4中使用Prox_reporter项目

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

嗨wangyi190228,

除了你不使用的app_easy_timer()之外,我没有看到代码中的任何疑似,再次尝试复制你得到的东西,我想你在app_button_press_cb()中得到probelm,并且没有一个计时器熄灭或许一个或计时器没有下降?使用了BLE_APP_SLEEPMODE的修改版本(在BEGGINGS发布了几秒钟,然后去睡觉等待外部中断)并插入3个定时器(使用APP_EASY_TIMER()这些计时器每个定时器都有大约500ms的距离)app_button按_cb()。在每个定时器回调时,I VE插入了ARCH_PRINTF()打印每个计时器将关闭的序列。因此,在每个按钮中,我可以看到终端印刷1,2,3。在所有测试中,所有计时器都按时常用,每次都会发生相同的打印。所以底线是,我无法复制你所提到的东西,我相信使用app_easy_timer()时计时器熄灭,也可以尝试执行相同的测试以验证。也许是你没有看到它的原因是因为回调的条件。

谢谢mt_dialog.