你好,
在示例代码中,我已经看到了这个函数,我在思考时思考,它将在延迟之后执行它的分配函数。我追溯到如何通过查看邻近记者的示例代码来完成此操作,但我无法完成工作。有没有文件,我可以找到更多信息?(我看过他们,但找不到任何东西)
谢谢,金
地狱Kim,我已经要求SW团队进行一些反馈,并一旦我在App_Timer_Set函数的描述中有答案,就会回复您的疑声。它在网上的SW文档中没有详细信息..BR JE_DIALOG.
金,
app_timer_set未执行延迟函数,而是发送延迟消息。因此,你是MURENERGEN的处理程序。
让计时器工作:1)在app_default_state中添加app_task_handlers.h中的处理程序。{app_my_timer,(ke_msg_func_t)app_my_timer_handler},2)实施处理程序int app_my_timer_handler(ke_msg_id_t const msgid,void const * param,ke_task_id_t const dest_id,ke_task_id_t const src_id){/ **在这里延迟函数* /return(ke_msg_consumed);}
{app_my_timer,(ke_msg_func_t)app_my_timer_handler},
int app_my_timer_handler(ke_msg_id_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_setke_timer_set(app_my_timer,task_app,100);// 100是1秒请注意,App_Timer_Set具有10毫秒的准确性。
ke_timer_set(app_my_timer,task_app,100);// 100是1秒
约翰内斯
嗨金,有关此计时器的更多信息可以在以下文档中找到(在本网站上):RW-BLE内核功能规范,从第14页开始。最好的祝福,
对话框蓝牙支持团队
你好,在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延迟);该功能首先取消计时器如果存在,那么它会创建一个新的计时器。计时器可以是单次或周期性的,即它每个触发后会自动设置。
我没有弄清楚如何配置定时器一拍或赛季。我没有看到任何带有ke_timer_set的一拍或定期的遥远。你能告诉我吗?谢谢你。-杰森·李
我不搜索文件RW-BLE内核功能规范,Canyou给了我一个网址吗?
嗨兰迪宇,
您可以在支持网站上的文档选项卡中的配置文件和API文档部分中找到文档,这是链接http://support.dialog-semicondiondiondum/resource/rw -ble-kernel-functiona ...。
谢谢mt_dialog.
据我所知,定时器文档在很多地方都很漂亮:- 没有用于将定时器设置为单次或定期的参数。- ke_timer_active的描述错误:“此函数从计时器队列弹出第一个计时器,并通过发送内核消息来通知相应的任务。如果定时器是定期的,则会再次设置;如果它是单次,则计时器被释放。该功能也检查下一个计时器和如果他们已过期或即将到期,则处理它们。“。它根本并不是这样。它只是检查定时器是否处于活动状态,而且没有其他。- ke_timer_clear的描述错误:“此功能搜索由其定时器和任务标识符识别的定时器元素。如果找到,则停止并释放,否则会返回错误消息。“。函数返回void,因此如果找不到计时器,则不会返回错误消息。(您可以简单地使用ke_timer_active查看它是否不存在)。
一个非常重要的说明:一旦定时器具有定时并被解雇,将放入消息队列的末尾并删除计时器。这意味着如果您在消息中运行ke_timer_active且尚未处理,则将返回false,如果您运行ke_timer_clear,则不会发生任何内容,如果运行ke_timer_set,则将启动新计时器,这意味着稍后意味着您将首先收到第一条消息,在计时器触发后,您将获得下一条消息。
所以,如果你只是想要一个定期的计时器:启动它一次和在计时器消息处理程序的末尾,只需启动一个新的计时器。
嗨Joacimwe.我制作了一个计时器,它在生成了计时器消息时自动停止。如果我不再重新开始,它将不会再次触发。似乎它是一拍计时器。但是你说“如果你运行ke_timer_clear,那就没有什么会发生”。现在,如果我开始一个计时器,我想在触发一条消息之前停止它,如何做到。
天气晴朗。谢谢你。
我们使用清晰的功能,但也使用全局标志变量来检查它是否应该运行,因为清除功能是不够的。
大家好,
这里有些人似乎掌握了计时器。所以我需要一些帮助。
我试图在连接设备时实现计时器以使LED闪烁。我跟随你的解释,但我面临着我不明白的问题:定时器在未启用扩展/深度睡眠模式时工作,但是当我激活扩展时,LED会发疯。
有什么我需要了解的吗?在接近示例中,LED以这种方式管理,它有效......
提前致谢 !
嗨matthieu,我仍然试图弄清楚app_timer_set如何完全适用于扩展或深度睡眠模式。但是,我想知道你还考虑下面。
UINT8_T FLAG_LED __Attribute __((部分(“保留_MEM_AREA0”),ZERO_INIT));;int app_my_timer_handler(ke_msg_id_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);// 1000ms.
if(flag_led == 1){flag_led = 0;gpio_setactive(gpio_bat_lex_port,gpio_bat_led_pin);}别的{flag_led = 1;gpio_setinactive(gpio_bat_led_port,gpio_bat_led_pin);}return(ke_msg_consumed);}
使用上面的代码,当延长或深度时,您不应期望LED闪烁的50%占空比,因为如果您的LED从对话框GPIO供电,则外围电源关闭和LED将关闭。
谢谢你的帮助。我实施了您推荐的内容,但我仍然在活动模式和扩展睡眠模式之间具有不同的行为。
镭
嗨Matt,其中一支球队会给你一个电话走过你所看到的问题。
BR JE_DIALOG.
嗨je,
你能验证app_timer_set的准确性吗?约翰内斯为1秒表示10毫秒准确性,百分比百分比或莱格尔的时间达到1分钟?
谢谢
所以最小的单位是10ms?我需要在micro秒内使用计时器?
地狱Kim,我已经要求SW团队进行一些反馈,并一旦我在App_Timer_Set函数的描述中有答案,就会回复您的疑声。它在网上的SW文档中没有详细信息..
BR JE_DIALOG.
金,
app_timer_set未执行延迟函数,而是发送延迟消息。因此,你是MURENERGEN的处理程序。
让计时器工作:
1)在app_default_state中添加app_task_handlers.h中的处理程序。
{app_my_timer,(ke_msg_func_t)app_my_timer_handler},
2)实施处理程序
int app_my_timer_handler(ke_msg_id_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_Timer_Set具有10毫秒的准确性。
约翰内斯
嗨金,
有关此计时器的更多信息可以在以下文档中找到(在本网站上):
RW-BLE内核功能规范,从第14页开始。
最好的祝福,
对话框蓝牙支持团队
你好,
在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延迟);
该功能首先取消计时器如果存在,那么它会创建一个新的计时器。计时器可以是单次或周期性的,即它
每个触发后会自动设置。
我没有弄清楚如何配置定时器一拍或赛季。我没有看到任何带有ke_timer_set的一拍或定期的遥远。
你能告诉我吗?
谢谢你。
-
杰森·李
我不搜索文件RW-BLE内核功能规范,Canyou给了我一个网址吗?
嗨兰迪宇,
您可以在支持网站上的文档选项卡中的配置文件和API文档部分中找到文档,这是链接http://support.dialog-semicondiondiondum/resource/rw -ble-kernel-functiona ...。
谢谢mt_dialog.
据我所知,定时器文档在很多地方都很漂亮:
- 没有用于将定时器设置为单次或定期的参数。
- ke_timer_active的描述错误:“此函数从计时器队列弹出第一个计时器,并通过发送内核消息来通知相应的任务。
如果定时器是定期的,则会再次设置;如果它是单次,则计时器被释放。该功能也检查下一个计时器和
如果他们已过期或即将到期,则处理它们。“。它根本并不是这样。它只是检查定时器是否处于活动状态,而且没有其他。
- ke_timer_clear的描述错误:“此功能搜索由其定时器和任务标识符识别的定时器元素。如果找到,则停止并
释放,否则会返回错误消息。“。函数返回void,因此如果找不到计时器,则不会返回错误消息。(您可以简单地使用ke_timer_active查看它是否不存在)。
一个非常重要的说明:一旦定时器具有定时并被解雇,将放入消息队列的末尾并删除计时器。这意味着如果您在消息中运行ke_timer_active且尚未处理,则将返回false,如果您运行ke_timer_clear,则不会发生任何内容,如果运行ke_timer_set,则将启动新计时器,这意味着稍后意味着您将首先收到第一条消息,在计时器触发后,您将获得下一条消息。
所以,如果你只是想要一个定期的计时器:启动它一次和在计时器消息处理程序的末尾,只需启动一个新的计时器。
嗨Joacimwe.
我制作了一个计时器,它在生成了计时器消息时自动停止。
如果我不再重新开始,它将不会再次触发。似乎它是一拍计时器。
但是你说“如果你运行ke_timer_clear,那就没有什么会发生”。
现在,如果我开始一个计时器,我想在触发一条消息之前停止它,如何做到。
天气晴朗。谢谢你。
我们使用清晰的功能,但也使用全局标志变量来检查它是否应该运行,因为清除功能是不够的。
大家好,
这里有些人似乎掌握了计时器。所以我需要一些帮助。
我试图在连接设备时实现计时器以使LED闪烁。我跟随你的解释,但我面临着我不明白的问题:定时器在未启用扩展/深度睡眠模式时工作,但是当我激活扩展时,LED会发疯。
有什么我需要了解的吗?在接近示例中,LED以这种方式管理,它有效......
提前致谢 !
嗨matthieu,
我仍然试图弄清楚app_timer_set如何完全适用于扩展或深度睡眠模式。
但是,我想知道你还考虑下面。
UINT8_T FLAG_LED __Attribute __((部分(“保留_MEM_AREA0”),ZERO_INIT));;
int app_my_timer_handler(ke_msg_id_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);// 1000ms.
if(flag_led == 1)
{
flag_led = 0;
gpio_setactive(gpio_bat_lex_port,gpio_bat_led_pin);
}
别的
{
flag_led = 1;
gpio_setinactive(gpio_bat_led_port,gpio_bat_led_pin);
}
return(ke_msg_consumed);
}
使用上面的代码,当延长或深度时,您不应期望LED闪烁的50%占空比,因为如果您的LED从对话框GPIO供电,则外围电源关闭和LED将关闭。
你好,
谢谢你的帮助。
我实施了您推荐的内容,但我仍然在活动模式和扩展睡眠模式之间具有不同的行为。
镭
嗨Matt,其中一支球队会给你一个电话走过你所看到的问题。
BR JE_DIALOG.
嗨je,
你能验证app_timer_set的准确性吗?约翰内斯为1秒表示10毫秒准确性,百分比百分比或莱格尔的时间达到1分钟?
谢谢
所以最小的单位是10ms?我需要在micro秒内使用计时器?