您的位置: OpenADSP社区论坛 -> Blackfin专区 -> 新手上路 -> BF592技术支持专区 -> BF592处理器应用设计6-定时器
本帖共有699个阅读者
发表帖子 发表投票 回复主题
BF592处理器应用设计6-定时器
尊贵身份标志
OpenADSP(管理员)
OpenADSP
头衔:社区公民
帮派:无帮无派
帖数:5187
金钱:34761
积分:6369
注册时间:2011/6/7
楼主信息 | 留言 | Email | 主页 | 编辑 | 管理 | 离线
BF592处理器应用设计6-定时器

定时器功能介绍

在控制系统中,常常要求有一些实时时钟以实现定时或者延时控制,如定时中断、定时检测、定时扫描等等,也往往要求有计数器,对外部事件进行计数。要实现定时或者延时功能,一般有三种方法:

  • 软件定时——让软件循环执行一段程序,程序本身并无执行目的,而是通过执行程序延时固定的时间,也就是以前的程序中经常使用的延时程序。这种方法降低了 cpu 的利用率。
  • 不可编程硬件定时——如外部芯片 555 时基电路,通过外部阻容,达到一定的延时功能,改变阻容大小可以改变延时长度。这种定时器取决于硬件,设定好以后不能通过软件更改。
  • 可编程定时器——这种定时器的定时值可以通过软件确定和修改,使用灵活

本开发板上用的BF592处理器具有3个通用定时器、1个内核定时器和一个看门狗定时器。

内核定时器用于各种系统定时功能的周期性中断,内核定时器工作在内核时钟频率下(CCLK),它包括4个内核MMR,分别是:定时器控制寄存器(TCNTL),定时器计数寄存器(TCOUNT),定时器周期寄存器(TPERIOD)和定时器定标寄存器(TSCALE)

看门狗定时器用来实现软件看门狗功能,如果在该定时器被软件更新之前定时时间到,软件看门狗就会产生一个事件给BF592内核,如此可以改善程序的可靠性。根据看门狗定时器的编程,产生的时间可以是复位、非屏蔽中断或者普通中断。

3个通用定时器都包括5个寄存器,而且可以设置为以下任何一种工作模式:

  • 脉宽调制模式(PWM_OUT);
  • 脉宽计数及捕获模式(WDTH_CAP);
  • 外部事件计数器模式(EXT_CLK)。

3个通用定时器分别都有一个专用的双向管脚:TMRx。由于BF592中这些TMRx跟IO口是复用的,所以要使用这个脚当TIMER功能输入输出,必须通过寄存器把BF592对应的管脚配置成TIMER脚,该管脚在PWM_OUT模式下作为输出管脚,而在WDTH_CAP和 EXT_CLK模式下是输入管脚。当使用内部时钟时,时钟源是BF592的系统时钟(SCLK)。

通用定时器寄存器如下:

上传的图片
  201281114133356.jpg [ 63.17 KB 555×180 ] (缩略时请点击查看原图)

 



我是OP...
等级:管理员 参考IP地址:*.*.*.*
2012/8/11 14:13:54
尊贵身份标志
OpenADSP(管理员)
OpenADSP
头衔:社区公民
帮派:无帮无派
帖数:5187
金钱:34761
积分:6369
注册时间:2011/6/7
1信息 | 留言 | Email | 主页 | 编辑 | 管理 | 离线

脉宽调制模式(PWM_OUT

当TIMERx_CONFIG寄存器中的MODE_FIFELD被设置为01时,定时器处于PWM输出模式下,在这个模式下,定时器的TMRx管脚可以通过软件设定为输出管脚

在配置寄存器的时候,要注意以下几点:

TIMERx_WIDTH设定的值要大于0;

  • TIMERx_PERIOD设定的值要大于TIMERx_WIDTH设定的值。
  • TIMERx_PERIOD设定的值大于10。(0xa~0xffffffff)。

脉宽计数及捕获模式(WDTH_CAP

当TIMERx_CONFIG寄存器中的MODE_FIFELD被设置为10时,定时器处于WDTH_CAP模式下,在这个模式下,定时器的TMRx管脚可以通过软件设定为输入管脚,内部定时的计数器被用来测试方波的周期和宽度,周期和宽度寄存器都为只读寄存器。

外部事件计数器模式(EXT_CLK

当TIMERx_CONFIG寄存器中的MODE_FIFELD被设置为11时,定时器处于EXT_CLK模式下,在这个模式下,定时器的TMRx管脚可以通过软件设定为输入管脚,定时器用任意一个外部源作为计数器时钟,外部源也可以与核时钟异步,TIMERx_PERIOD寄存器可以设置为最大的定时器外部计数值。

TIMERx_CONFIG寄存器具体说明如下:

上传的图片
  201281114151156.jpg [ 150.03 KB 772×599 ] (缩略时请点击查看原图)

 



我是OP...
等级:管理员 参考IP地址:*.*.*.*
2012/8/11 14:15:33
小L1u氓(论坛新手)
小L1u氓
头衔:社区公民
帮派:无帮无派
帖数:27
金钱:6
积分:30
注册时间:2014/9/3
2信息 | 留言 | Email | 主页 | 编辑 | 管理 | 离线
给点程序呗,每个帖子附上一个例程,我觉得更好理解的,版主~~

我不是OP..
等级:论坛新手 参考IP地址:*.*.*.*
2014/10/14 11:33:00
Powered by OpenADSP Copyright © 2010 www.Openadsp.com. All rights reserved.154299 Call, 1 Queries, Processed in 0.125000 second(s),