你好,
在示例代码中,我看到了这个函数,我想当调用它时,它将执行指定的函数后延迟。我有追溯到如何做到这一点通过查看邻近记者示例代码,但我不能让它工作。有一个文档我在哪里可以找到更多的信息?(我看了,但是找不到任何东西)
谢谢,金
地狱金,我要求西南团队一些反馈,并将尽快回复你的问题我有答案app_timer_set函数的描述。不是详细的SW文档在线现在. .BR JE_Dialog
金,
app_timer_set不是执行延迟函数,而是发送延迟的消息。你亩因此registera这个消息处理程序。
定时器的工作:1)在app_task_handlers添加处理程序。app_default_state h。(ke_msg_func_t) app_my_timer_handler}, {APP_MY_TIMER2)实现处理程序int app_my_timer_handler (ke_msg_id_t const是否,空白const *参数,ke_task_id_t const dest_id,ke_task_id_t const src_id){/ * *你的延迟函数* /返回(KE_MSG_CONSUMED);}
(ke_msg_func_t) app_my_timer_handler}, {APP_MY_TIMER
int app_my_timer_handler (ke_msg_id_t const是否,空白const *参数,ke_task_id_t const dest_id,ke_task_id_t const src_id){/ * *你的延迟函数* /返回(KE_MSG_CONSUMED);}
3)调用app_timer_setke_timer_set (APP_MY_TIMER TASK_APP 100);/ / 100是1秒注意,app_timer_set 10 ms的准确性。
ke_timer_set (APP_MY_TIMER TASK_APP 100);/ / 100是1秒
约翰内斯
嗨,金姆,可以找到更多的信息关于这个计时器在以下文档(在这个网站上):RW-BLE内核功能规范,从14页。最好的问候,
对话框蓝牙支持团队
你好,在RW-BLE内核功能规格1.1中,v7.5.1章,描述说,
空白ke_timer_set (ke_msg_id_t const timer_id ke_task_id_t const任务,uint16_t const延迟);函数首先取消计时器,如果它存在,那么它会创建一个新的。定时器可以一次性或定期,即它每次触发后将再次自动设置。
我没有弄清楚如何配置定时器一次性或periodec。我没有看到任何paremeter与ke_timer_set一次性或定期。你能让我知道吗?谢谢你!- - -杰森·李
我不搜索文件RW-BLE内核功能规格,房子给我一个网址吗?
嗨RandyYu,
你可以找到的文档资料& API文档部分的文档选项卡支持网站,这里是链接http://support.dialog-semiconductor.com/resource/rw-ble-kernel-functiona..。。
由于MT_dialog
据我所知,计时器文档很破在许多地方:——没有参数设置定时器来一次性或定期。——ke_timer_active的描述是错误的:“这个函数弹出第一个定时器的定时器队列,并通知相应的任务通过发送一个内核消息。如果计时器是周期性的,它是集;如果是一次性,计时器被释放。也下一个定时器和功能检查过程中他们是否已经过期或即将到期。”。它不会这样做。它只是检查计时器是活跃的。——ke_timer_clear的描述是错误的:“这个函数搜索计时器元素identifed计时器和任务标识符。如果找到,停下来释放,否则将返回一条错误消息。”。函数返回空,所以它不返回一个错误消息如果没有找到计时器。(您可以简单地使用ke_timer_active是否不存在)。
一个非常重要的注意:一旦定时器timedout被解雇,消息放入消息队列和计时器。这意味着如果你运行ke_timer_active当消息队列中的消息和没有处理,它将返回false,如果你运行ke_timer_clear,什么都不会发生,如果你运行ke_timer_set,一个新的定时器将晚些时候开始这意味着你将先收到第一个消息,和计时器三角后,你将得到下一个消息。
所以,如果你只是想要一个周期定时器:开始一次最后的计时器消息处理程序,开始一个新的定时器。
嗨Joacimwe我有做一个计时器,它停止时自动生成一个计时器消息。如果我不重新开始,它将不会再触发。看来,这是一个只有一次的计时器。但你说,“如果你ke_timer_clear运行,不会发生”。现在,如果我启动一个计时器,触发消息之前我想停止它,如何去做。
很明显。谢谢你!
我们使用明确的函数也是全球标志变量来检查它是否应该运行,自从明确功能是不够的。
有些人似乎掌握定时器。所以我需要一些帮助。
我尝试实现一个计时器LED闪烁,当设备连接。我跟着你的解释但我面临一个问题,我不懂:定时器工作时没有启用扩展/深度睡眠模式但当我激活扩展,LED发疯。
有什么我需要知道吗?在邻近的例子中,领导是管理的方式和它的工作原理……
提前谢谢!
嗨,马修,我仍在试图找出app_timer_set作品完全扩展或深度睡眠模式。但是,我想知道你还要考虑如下。
uint8_t flag_led __attribute__ (((“retention_mem_area0”)部分,zero_init));;int app_my_timer_handler (ke_msg_id_t const是否,空白const *参数,ke_task_id_t const dest_id,ke_task_id_t const src_id){
app_timer_set (APP_MY_TIMER TASK_APP 100);/ / 1000毫秒
如果(flag_led = = 1){flag_led = 0;GPIO_SetActive (GPIO_BAT_LED_PORT GPIO_BAT_LED_PIN);}其他的{flag_led = 1;GPIO_SetInactive (GPIO_BAT_LED_PORT GPIO_BAT_LED_PIN);}返回(KE_MSG_CONSUMED);}
上面的代码,扩展或深时,你不应该期望50%的关税周期LED闪烁,因为外围断电,将关闭如果你的领导是驱动的GPIO的对话框。
谢谢你的帮助。我实现你推荐什么但我仍然活跃之间有不同的行为模式和睡眠模式。
马特
你好马特,一个团队将给你电话来遍历你看到的问题。
BR JE_Dialog
嗨我,
你能核实app_timer_set的准确性吗?约翰说10毫秒精度为1秒,百分比或lomger时间1分钟吗?
谢谢
最小单位是10 ms ? ?什么是我需要使用微秒计时器吗?
地狱金,我要求西南团队一些反馈,并将尽快回复你的问题我有答案app_timer_set函数的描述。不是详细的SW文档在线现在. .
BR JE_Dialog
金,
app_timer_set不是执行延迟函数,而是发送延迟的消息。你亩因此registera这个消息处理程序。
定时器的工作:
1)在app_task_handlers添加处理程序。app_default_state h。
(ke_msg_func_t) app_my_timer_handler}, {APP_MY_TIMER
2)实现处理程序
int app_my_timer_handler (ke_msg_id_t const是否,
空白const *参数,
ke_task_id_t const dest_id,
ke_task_id_t const src_id)
{
/ * *你的延迟函数* /
返回(KE_MSG_CONSUMED);
}
3)调用app_timer_set
ke_timer_set (APP_MY_TIMER TASK_APP 100);/ / 100是1秒
注意,app_timer_set 10 ms的准确性。
约翰内斯
嗨,金姆,
可以找到更多的信息关于这个计时器在以下文档(在这个网站上):
RW-BLE内核功能规范,从14页。
最好的问候,
对话框蓝牙支持团队
你好,
在RW-BLE内核功能规格1.1中,v7.5.1章,描述说,
空白ke_timer_set (ke_msg_id_t const timer_id ke_task_id_t const任务,uint16_t const延迟);
函数首先取消计时器,如果它存在,那么它会创建一个新的。定时器可以一次性或定期,即它
每次触发后将再次自动设置。
我没有弄清楚如何配置定时器一次性或periodec。我没有看到任何paremeter与ke_timer_set一次性或定期。
你能让我知道吗?
谢谢你!
- - -
杰森·李
我不搜索文件RW-BLE内核功能规格,房子给我一个网址吗?
嗨RandyYu,
你可以找到的文档资料& API文档部分的文档选项卡支持网站,这里是链接http://support.dialog-semiconductor.com/resource/rw-ble-kernel-functiona..。。
由于MT_dialog
据我所知,计时器文档很破在许多地方:
——没有参数设置定时器来一次性或定期。
——ke_timer_active的描述是错误的:“这个函数弹出第一个定时器的定时器队列,并通知相应的任务通过发送一个内核消息。
如果计时器是周期性的,它是集;如果是一次性,计时器被释放。也下一个定时器和功能检查
过程中他们是否已经过期或即将到期。”。它不会这样做。它只是检查计时器是活跃的。
——ke_timer_clear的描述是错误的:“这个函数搜索计时器元素identifed计时器和任务标识符。如果找到,停下来
释放,否则将返回一条错误消息。”。函数返回空,所以它不返回一个错误消息如果没有找到计时器。(您可以简单地使用ke_timer_active是否不存在)。
一个非常重要的注意:一旦定时器timedout被解雇,消息放入消息队列和计时器。这意味着如果你运行ke_timer_active当消息队列中的消息和没有处理,它将返回false,如果你运行ke_timer_clear,什么都不会发生,如果你运行ke_timer_set,一个新的定时器将晚些时候开始这意味着你将先收到第一个消息,和计时器三角后,你将得到下一个消息。
所以,如果你只是想要一个周期定时器:开始一次最后的计时器消息处理程序,开始一个新的定时器。
嗨Joacimwe
我有做一个计时器,它停止时自动生成一个计时器消息。
如果我不重新开始,它将不会再触发。看来,这是一个只有一次的计时器。
但你说,“如果你ke_timer_clear运行,不会发生”。
现在,如果我启动一个计时器,触发消息之前我想停止它,如何去做。
很明显。谢谢你!
我们使用明确的函数也是全球标志变量来检查它是否应该运行,自从明确功能是不够的。
你好,
有些人似乎掌握定时器。所以我需要一些帮助。
我尝试实现一个计时器LED闪烁,当设备连接。我跟着你的解释但我面临一个问题,我不懂:定时器工作时没有启用扩展/深度睡眠模式但当我激活扩展,LED发疯。
有什么我需要知道吗?在邻近的例子中,领导是管理的方式和它的工作原理……
提前谢谢!
嗨,马修,
我仍在试图找出app_timer_set作品完全扩展或深度睡眠模式。
但是,我想知道你还要考虑如下。
uint8_t flag_led __attribute__ (((“retention_mem_area0”)部分,zero_init));;
int app_my_timer_handler (ke_msg_id_t const是否,
空白const *参数,
ke_task_id_t const dest_id,
ke_task_id_t const src_id)
{
app_timer_set (APP_MY_TIMER TASK_APP 100);/ / 1000毫秒
如果(flag_led = = 1)
{
flag_led = 0;
GPIO_SetActive (GPIO_BAT_LED_PORT GPIO_BAT_LED_PIN);
}
其他的
{
flag_led = 1;
GPIO_SetInactive (GPIO_BAT_LED_PORT GPIO_BAT_LED_PIN);
}
返回(KE_MSG_CONSUMED);
}
上面的代码,扩展或深时,你不应该期望50%的关税周期LED闪烁,因为外围断电,将关闭如果你的领导是驱动的GPIO的对话框。
你好,
谢谢你的帮助。
我实现你推荐什么但我仍然活跃之间有不同的行为模式和睡眠模式。
马特
你好马特,一个团队将给你电话来遍历你看到的问题。
BR JE_Dialog
嗨我,
你能核实app_timer_set的准确性吗?约翰说10毫秒精度为1秒,百分比或lomger时间1分钟吗?
谢谢
最小单位是10 ms ? ?什么是我需要使用微秒计时器吗?