17个帖子/ 0新
最后一篇
离线
最后一次露面:6年8个月前
加入:2014-03-14 14:55
app_timer_set.

嗨,

在示例代码中,我已经看到了这个函数,我在思考时思考,它将在延迟之后执行它的分配函数。我追溯到如何通过查看邻近记者的示例代码来完成此操作,但我无法完成工作。
有没有文件,我可以找到更多信息?(我看过他们,但找不到任何东西)

谢谢,

je_dialog.
离线
最后一次露面:4天23小时前
员工
加入:2013-12-05 14:02
见鬼,金,我已经问过SW了

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

约翰内斯.Steensma.
离线
最后一次露面:2个月1周前
加入:2014-04-29 16:38
基姆,

基姆,

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

让计时器工作:
1)在app_default_state中添加app_task_handlers.h中的处理程序。

{app_my_timer,(ke_msg_func_t)app_my_timer_handler},

2) 实现处理程序

int app\u my\u timer\u处理程序(ke\u msg\u id\u t const msgid,
void const * param,
ke_task_id_t const dest_id,
ke_task_id_t const src_id)
{
/**你在这里做什么*/
return(ke_msg_consumed);
}

3)调用app_timer_set

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

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

约翰内斯

ak_dialog.
离线
最后一次露面:2周4天前
员工
加入:2013-12-16 15:49
嗨金,

嗨金,
有关此计时器的更多信息可以在以下文档中找到(在本网站上):
RW-BLE内核功能规范,从第14页开始。
顺致敬意,

对话框蓝牙支持团队

鄂中69
离线
最后一次露面:1年9个月前
加入:2014-06-23 07:11
嗨,

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

void ke_timer_set(ke_msg_id_t const timer_id,ke_task_id_t const任务,uint16_t const延迟);
函数首先取消计时器(如果存在),然后创建一个新的计时器。计时器可以是一次性的,也可以是周期性的
将在每次触发后自动重新设置。

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

兰迪宇
离线
最后一次露面:2年7个月前
加入:2015-01-28 08:49
我不搜索文件rw

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

mt_dialog.
离线
最后一次露面:1周3天前
员工
加入:2015-06-08 11:34
嗨兰迪宇,

嗨兰迪宇,

您可以在支持网站上的文档选项卡中的配置文件和API文档部分中找到文档,这是链接http://support.dialog-semicondiondiondum/resource/rw -ble-kernel-functiona ...

谢谢mt_dialog.

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

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

一个非常重要的说明:一旦定时器具有定时并被解雇,将放入消息队列的末尾并删除计时器。这意味着如果您在消息中运行ke_timer_active且尚未处理,则将返回false,如果您运行ke_timer_clear,则不会发生任何内容,如果运行ke_timer_set,则将启动新计时器,这意味着稍后意味着您将首先收到第一条消息,在计时器触发后,您将获得下一条消息。

所以,如果你只是想要一个定期的计时器:启动它一次和在计时器消息处理程序的末尾,只需启动一个新的计时器。

斯克林
离线
最后一次露面:5年7个月前
专家
加入:2014-08-12 08:01
嗨Joacimwe.

嗨Joacimwe.
我制作了一个计时器,它在生成了计时器消息时自动停止。
如果我不再重新开始,它将不会再次触发。似乎它是一拍计时器。
但你说过“如果你把时间调干净,什么也不会发生”。
现在,如果我开始一个计时器,我想在触发一条消息之前停止它,如何做到。

鄂中69
离线
最后一次露面:1年9个月前
加入:2014-06-23 07:11
天气晴朗。谢谢。

天气晴朗。谢谢。

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

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

Matthieu Antoine.
离线
最后一次露面:4年2个月前
专家
加入:2014-01-14 14:51
大家好,

大家好,

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

我试图在连接设备时实现计时器以使LED闪烁。我跟随你的解释,但我面临着我不明白的问题:定时器在未启用扩展/深度睡眠模式时工作,但是当我激活扩展时,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 * param,
ke_task_id_t const dest_id,
ke_task_id_t const src_id)
{

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

如果(标志灯==1)
{
flag_led = 0;
gpio_setactive(gpio_bat_lex_port,gpio_bat_led_pin);
}
其他
{
标志灯=1;
gpio_setinactive(gpio_bat_led_port,gpio_bat_led_pin);
}
return(ke_msg_consumed);
}

使用上面的代码,当延长或深度时,您不应期望LED闪烁的50%占空比,因为如果您的LED从对话框GPIO供电,则外围电源关闭和LED将关闭。

Matthieu Antoine.
离线
最后一次露面:4年2个月前
专家
加入:2014-01-14 14:51
嗨,

嗨,

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

je_dialog.
离线
最后一次露面:4天23小时前
员工
加入:2013-12-05 14:02
嗨,马特,其中一个小组

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

BR JE_DIALOG.

亚历克斯罗
离线
最后一次露面:3周前1年
专家
加入:2014-02-28 19:16
嗨je,

嗨je,

你能验证app_timer_set的准确性吗?约翰内斯为1秒表示10毫秒准确性,百分比百分比或莱格尔的时间达到1分钟?

谢谢

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

所以最小的单位是10ms?我需要在micro秒内使用计时器?