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

本文介绍了实时操作系统(RTT)中的定时器,包括硬件定时器的高精度和独立性,以及软件定时器的灵活性和数量优势。重点讲解了RTT中周期性触发的软件定时器,并通过实例展示其用法。

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

硬件定时器,是指单片机本身提供的一种外设,能够产生定时事件,而且不占用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 ti
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值