应用程序\定时器\设置

17个职位/0个新职位
最后一篇文章
基姆
离线
最后一次见到:6年8个月前
已加入:2014-03-14 14:55
应用程序\定时器\设置

你好,

在示例代码中,我看到了这个函数,我想在调用它时,它会在一段延迟后执行分配给它的函数。我通过查看邻近报告器示例代码追溯了如何实现这一点,但我无法让它工作。
有什么文件可以让我查到更多的信息吗?(我看了一遍,但什么也没找到)

谢谢,
基姆

JE\U对话框
离线
最后一次见到:2天8小时前
工作人员
已加入:2013-12-05 14:02
见鬼,金,我已经问过SW了

见鬼,Kim,我已经向软件团队征求了一些反馈意见,一旦我对app\u timer\u set函数的描述有了答案,我会尽快回复你的问题。目前在线的软件文档中没有详细说明。。
BR JE\u对话框

约翰内斯·斯特恩斯马
离线
最后一次见到:2个月6天前
已加入:2014-04-29 16:38
基姆,

基姆,

app\u timer\u set没有执行延迟功能,而是发送延迟消息。您需要为此消息注册一个处理程序。

要使计时器工作:
1) 在app\u default\u状态下的app\u task\u handlers.h中添加处理程序。

{APP\u MY\u TIMER,(ke\u msg\u func\t)APP\u MY\u TIMER\u handler},

2) 实现处理程序

int app\u my\u timer\u处理程序(ke\u msg\u id\u t const msgid,
void const*参数,
任务id常量目标id,
Keu任务\u id \u t const src \u id)
{
/**你在这里做什么*/
返回(已消耗的消息);
}

3) 调用应用程序计时器集

ke_timer_set(APP_MY_timer,TASK_APP,100);//100是1秒

请注意,app\u timer\u set的精确度为10ms。

约翰内斯

AKU对话框
离线
最后一次见到:2周1天前
工作人员
已加入:2013-12-16 15:49
嗨,金姆,

嗨,金姆,
有关此计时器的详细信息,请参阅以下文档(在本网站上):
RW-BLE内核功能规范,从第14页开始。
顺致敬意,

对话蓝牙支持团队

鄂中69
离线
最后一次见到:1年9个月前
已加入:2014-06-23 07:11
你好,

你好,
在RW-BLE内核功能规范1.1第7.5.1章中,描述说,

作废keu timer\u set(keu msg\u id\u t const timer\u id,keu task\u id\u t const task,uint16\u t const delay);
函数首先取消计时器(如果存在),然后创建一个新的计时器。计时器可以是一次性的,也可以是周期性的
将在每次触发后自动重新设置。

我不知道如何配置定时器,一次或一个周期。我看不到任何参数为一杆或定期与克尤定时器设置。
你能告诉我吗?
非常感谢。
--
李杰森

兰迪尤
离线
最后一次见到:2年7个月前
已加入:2015-01-28 08:49
我不是在搜索文件RW

我没有搜索文件RW-BLE内核功能规范,你能给我一个网址吗?

MT\u对话框
离线
最后一次见到:1周1天前
工作人员
已加入:2015-06-08 11:34
你好RandyYu,

你好RandyYu,

您可以在支持站点的文档选项卡的Profiles&API文档部分找到该文档,以下是链接http://support.dialog.com/resource/rw ble内核函数。。。.

谢谢你的对话

乔奇姆韦
离线
最后一次见到:1年2个月前
上师
已加入:2014-01-14 06:45
据我所知,计时器

据我所知,计时器文档在很多地方都很不完整:
-没有用于将计时器设置为单次或周期的参数。
-keu timer\u active的描述是错误的:“此函数从计时器队列中弹出第一个计时器,并通过发送内核消息通知相应的任务。
如果计时器是周期性的,则重新设置;如果是一次性的,则释放计时器。该函数还检查下一个计时器和
如果它们已过期或即将过期,请对其进行处理。“。它根本就不这样做。它只是检查计时器是否处于活动状态,其他什么都不检查。
-keu timer\u clear的描述是错误的:“此函数搜索由其计时器和任务标识符标识的计时器元素。如果发现,则停止并
释放,否则返回错误消息。“。函数返回void,因此如果找不到计时器,它不会返回错误消息。(您可以简单地使用keu timer\u active来查看它是否不存在)。

一个非常重要的注意事项:一旦计时器超时并被触发,一条消息就会被放入消息队列的末尾,计时器就会被删除。这意味着,如果在消息在消息队列中且尚未处理时运行keu timer\u active,则返回false;如果运行keu timer\u clear,则不会发生任何事情;如果运行keu timer\u set,则会启动一个新的计时器,这意味着稍后将首先接收第一条消息,并且在触发计时器之后,你会收到下一条信息。

因此,如果您只是想要一个周期计时器:启动它一次,在计时器消息处理程序的末尾,只需启动一个新的计时器。

斯克林
离线
最后一次见到:5年7个月前
专家
已加入:2014-08-12 08:01
你好,乔奇姆

你好,乔奇姆
我做了一个计时器,当它生成了一个计时器消息时,它会自动停止。
如果我不重新开始,它就不会触发又来了。是的好像是个一次性计时器。
但你说过“如果你把时间调干净,什么也不会发生”。
现在,如果我启动一个计时器,我想在触发一个消息之前停止它,怎么做。

鄂中69
离线
最后一次见到:1年9个月前
已加入:2014-06-23 07:11
很清楚。非常感谢。

很清楚。非常感谢。

乔奇姆韦
离线
最后一次见到:1年2个月前
上师
已加入:2014-01-14 06:45
我们使用clear函数,但是

我们使用clear函数,但也使用一个全局标志变量来检查它是否应该运行,因为clear函数是不够的。

马蒂厄·安托万
离线
最后一次见到:4年2个月前
专家
已加入:2014-01-14 14:51
大家好,

大家好,

这里有些人似乎掌握了计时器。所以我需要你的帮助。

我试图实现一个定时器,使LED闪烁时,设备连接。我听了你的解释,但我面临一个问题,我不明白:定时器工作时,延长/深度睡眠模式是没有启用,但当我启动延长,发光二极管发疯。

有什么我需要知道的吗?在接近的例子,LED是这样管理的,它的工作。。。

提前谢谢!

鄂中69
离线
最后一次见到:1年9个月前
已加入:2014-06-23 07:11
嗨,马修,

嗨,马修,
我仍在试图弄清楚app\u timer\u set是如何在长时间或深度睡眠模式下工作的。
但是,我想知道你是否也考虑到下面。

uint8_t flag_led_uuuattribute_uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu;;
int app\u my\u timer\u处理程序(ke\u msg\u id\u t const msgid,
void const*参数,
任务id常量目标id,
Keu任务\u id \u t const src \u id)
{

app_timer_set(app_MY_timer,TASK_app,100);//1000毫秒

如果(标志灯==1)
{
标志灯=0;
GPIO\ U设置激活(GPIO\ U BAT\ U LED\ U端口、GPIO\ U BAT\ U LED\ U引脚);
}
其他的
{
标志灯=1;
GPIO\ U SetInactive(GPIO\ U BAT\ U LED\ U端口、GPIO\ U BAT\ U LED\ U引脚);
}
返回(已消耗的消息);
}

上面的代码,当扩展或深入,你不应该期望50%的LED闪烁占空比,因为外围电源关闭,LED将关闭,如果你的LED是由对话框GPIO供电。

马蒂厄·安托万
离线
最后一次见到:4年2个月前
专家
已加入:2014-01-14 14:51
你好,

你好,

谢谢你的帮助。
我实现了你的建议,但我仍然有一个不同的行为之间的积极模式和延长睡眠模式。

马特

JE\U对话框
离线
最后一次见到:2天8小时前
工作人员
已加入:2013-12-05 14:02
嗨,马特,其中一个小组

嗨,马特,其中一个团队会给你打电话,让你把你看到的问题解决掉。

BR JE\u对话框

罗念文
离线
最后一次见到:1年2周前
专家
已加入:2014-02-28 19:16
嗨,杰,

嗨,杰,

你能验证一下应用程序定时器设置的准确性吗?约翰内斯说,10毫秒的精度为1秒,百分比或1分钟这样的较长时间如何?

谢谢

亚辛·本纳西奥
离线
最后一次见到:5年6个月前
已加入:2015-04-10 15:32
所以最小的单位是10ms

所以最小的单位是10ms??用微秒计时需要什么?