这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 嵌入式开发 » MCU » 试用手记之定时器的使用(一)

共5条 1/1 1 跳转至

试用手记之定时器的使用(一)

助工
2011-02-13 16:33:20     打赏

定时器堪比MCU的灵魂,现在的嵌入式系统中基本上都要用到定时器。现在我们来看看M95F264K的定时器的使用。寄存器的设定详情参考Datasheet的第十四章。Datasheet我已经上传到EEPW网站上了。M95F264K8/16位多功能定时器具有7种工作模式(具体的见Datasheet),本试用手记先讲间隔定时器功能(连续模式)。

使用间隔定时器功能(连续模式)时,计数器自“00H”开始计数。计数器值与寄存器设定值匹配时,定时器输出反转。发出中断请求后,计数器返回“00H”,重新计数。重复操作使定时器输出方波。

设置步骤入下:

1)       设定模式(T00CR0[F3…F0]=0 0 0 1)(见Datasheet P212

2)        设定计数器时钟(T00CR0[C2…C0]

3)        设定计数器值(T00DR

4)        必要时设定中断级(ILR1

5)        使能定时器输出(T00CR1OE=1

6)        启动定时器(T00CR1STA=1

然后在中断服务函数里清楚ISR标志。(T00CR1IF=0

接下来看看具体的程序。为了验证定时器是否工作正常,我们可以在中断服务函数里设置断点观察,也可以利用EVB上的LED来进行观察。

先定义用到的变量:

int i=0;

int LED=1;

有用到的IO初始化:

void IOinit()

{

    DDR6_P62 = 1;

    PDR6_P62 = 1;

 

}

接下来是定时器的初始化:

void InitCompTimer (void)

{

       T01DR = 0xF1;                          // 设定计数器高8

       T00DR = 0xFF;                          // 设定计数器低8

       TMCR0 = 0x10;                          // 16-bit, 无滤波

       T00CR0 = 0x81;                         //间隔定时器功能(连续模式)

                                                        // 溢出中断使能

       T00CR1 = 0xA1;                         // 使能中断,使能输出

                                                        // 启动定时器

}

再来是中断服务函数:

__interrupt void CompTimer (void)

{

    i++;

    LED=~LED;

       PDR6_P62 = LED;//实现LED灯的闪烁

   

       T00CR1_IE = 0;                         // 先关中断

       T00CR1_IF = 0;                         // 清楚标志位

       T00CR1_IE = 1;                         // 使能中断

}

main()函数里只要调用相应的子函数就可以了。

void main (void)

{  

    IOinit();

       InitCompTimer();

       InitIrqLevels();

       __EI();

       while (1);

}

运行程序就可以看到LED闪烁了。证明定时器确实工作了。说明一下,我们只是让定时器工作,并没有精确定时,所以定时器初值只是大概设置成LED闪烁的时候人眼可以识别,并没有准确确定定时多少。想要准确定时的可以在其基础上根据需要参考Datasheet改初值即可。完整工程如下:
Timer Continuous.rar

 

 




关键词: 试用     手记     定时器     使用    

专家
2011-02-13 16:57:51     打赏
2楼
继续发挥你的才华出来,我先赞一个!!!

院士
2011-02-14 09:12:10     打赏
3楼
不错的说~~

高工
2011-02-14 10:38:41     打赏
4楼
“定时器堪比MCU的灵魂”,,一定得要领会精髓,谢谢楼主,

菜鸟
2012-05-04 08:34:17     打赏
5楼
你太牛了

共5条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]