动态和静态的意思和前面完全一样,这里不再重复。这里创建两个动态定时器,一个是周期的另一个是单次的。
其中timeout() 函数都是回调函数,即定时时间到之后,操作系统会自动调用的函数。
程序:
#include <rtthread.h>
static rt_timer_t timer1;
static rt_timer_t timer2;
static rt_uint8_t count;
static void timeout1(void* parameter)
{
rt_kprintf("periodic timer is timeout\n");
}
static void timeout2(void* parameter)
{
rt_kprintf("one shot timer is timeout\n");
}
int rt_application_init()
{
timer1 = rt_timer_create("timer1",
timeout1,
RT_NULL,
1000,
RT_TIMER_FLAG_PERIODIC);
if (timer1 != RT_NULL)
rt_timer_start(timer1);
timer2 = rt_timer_create("timer2",
timeout2,
RT_NULL,
3000,
RT_TIMER_FLAG_ONE_SHOT);
if (timer2 != RT_NULL)
rt_timer_start(timer2);
return 0;
}
结果:
periodic timer is timeout
periodic timer is timeout
periodic timer is timeout
one shot timer is timeout
periodic timer is timeout
periodic timer is timeout
periodic timer is timeout
periodic timer is timeout
periodic timer is timeout
periodic timer is timeout
periodic timer is timeout
periodic timer is timeout
periodic timer is timeout
periodic timer is timeout
periodic timer is timeout
periodic timer is timeout
periodic timer is timeout
本文介绍如何在RTT系统中使用动态定时器,包括周期性和单次触发两种类型。当定时时间到达时,系统将自动调用预设的回调函数timeout()。

606

被折叠的 条评论
为什么被折叠?



