[RTT例程练习] 4.1 定时器基本使用

定时器分为软件定时器和硬件定时器。

硬件定时器,是指单片机本身提供的一种外设,能够产生定时事件,而且不占用CPU时间。优点是定时精度高,独立于CPU,还可灵活配置其他许多功能,例如PWM。

而软件定时器是操作系统提供的一种定时接口,其精度取决于操作系统的tick时间,而RTOS的tick建立在硬件定时器之上,一旦开机就不再改变。但优点是其数量不受硬件定时器数目的限制,而且便于操作系统统一管理。RTT中,软件定时器还分单次触发和周期性触发。

这个例子显示了一个周期性触发的软件定时器。

程序

#include <rtthread.h>

static rt_timer_t timer1;
static rt_uint8_t count;

static void timeout1(void *parameter)
{
    rt_kprintf("periodic timer is timeout, %d.\n", count);
    
    count++;
    
    if (count >= 8)
    {
        rt_kprintf("stop it!\n");
        
        rt_timer_stop(timer1);
        
        count = 0;
    }
}

int rt_application_init()
{
    timer1 = rt_timer_create("timer1",
        timeout1,
        RT_NULL,
        10,
        RT_TIMER_FLAG_PERIODIC);
    if (timer1 != RT_NULL)
        rt_timer_start(timer1);
        
    return 0;
}

结果

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


posted @ 2013-04-07 13:30  lyyyuna  阅读(668)  评论(0编辑  收藏  举报