打印
[牛人杂谈]

M051之定时器控制器与系统定时器

[复制链接]
641|7
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
xuanhuanzi|  楼主 | 2018-3-18 18:05 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
概述
定时器是微控制器中最基本的接口之一,它的用途非常广泛,常用于计数、延时、提供定时脉冲信号等。在实际应用中,对于转速、位移、速度、流量等物理量的测量,通常也是由传感器转换成脉冲电信号,通过使用定时器来测量其周期或频率,再经过计算处理获得。
定时器控制器包括4 组32 位的定时器,TIMER0~TIMER3, 方便用户的定时器控制应用。定时器模块可支持例如频率测量,计数,间隔时间测量,时钟产生,延迟时间等功能。定时器可在计时溢出时产生中断信号,也可在操作过程中提供计数的当前值。
特征
  • 4 组32-位定时器,带24 位向上定时器和一个8 位的预分频计数器
  • 每个定时器都有独立的时钟源
  • 24 位向上计数器,通过TDR (定时器数据寄存器)可读取
  • 4 种工作模式:单脉冲模式(one-shot),周期模式(periodic),开关模式(toggle)和连续计数(continuous counting)模式操作模式


沙发
xuanhuanzi|  楼主 | 2018-3-18 18:06 | 只看该作者
定时器操作模式

使用特权

评论回复
板凳
xuanhuanzi|  楼主 | 2018-3-18 18:06 | 只看该作者
周期模式
如果定时器工作在周期模式且CEN(定时器使能位)置1,定时器计数器开始计数。一旦定时器计数器
的值达到定时器比较寄存器(TCMPR)的值,且IE (中断使能位)设置为1,则定时器中断标志置位且产生
中断信号,并发送到NVIC 通知CPU。表示定时器计数溢出发生。
如果IE (中断使能位)设置为0,无中断信号发生。在该工作模式下,一旦定时器计数器的值达到定
时器比较器寄存器(TCMPR) 的值,定时器计数器的值返回计数初始值且CEN 保持为1 (持续使能计数)。
定时器计数器重新开始计数。
如果软件清除中断标志,一旦定时器计数器的值与定时器比较寄存器(TCMPR)的值匹配且IE (中断
使能位)设置为1 中断标志置位,产生中断信号并送到NVIC 再次通知CPU。也就是说,定时器操作定时
器计数和与TCMPR 比较功能是周期性进行的。直到CEN 设置为0,定时器计数操作才会停止。中断信号
的产生也是周期性的。因此,这种操作模式称为周期模式。

使用特权

评论回复
地板
xuanhuanzi|  楼主 | 2018-3-18 18:07 | 只看该作者
开关模式
如果定时器工作在开关模式且CEN(定时器使能位)置1,定时器计数器开始计数。一旦定时器计数器
的值与定时器比较寄存器TCMPR 的值匹配时,且IE(中断使能位)设置为1,则定时器中断标志置位,产生
中断信号并送到NVIC 通知CPU。表示定时器发生计数溢出。相应开关输出(tout) 信号置1。
在这种操作模式,一旦定时器计数器的值与定时器比较寄存器TCMPR 的值匹配, 定时器计数器的值
返回到计数初始值且CEN 保持为1 (持续使能计数)。定时器计数器重新开始计数。如果中断标志由软件
清除,一旦定时器计数器的值与定时器比较寄存器中TCMPR 的值匹配且IE (中断使能位) 置1,则定时
器中断标志置位,发生中断信号,并送到NVIC 再次通知CPU。相应开关输出(tout)信号置0。定时器计
数操作在CEN 设置为0 之后才停止。因此,开关输出(tout)信号以50%的占空比反复改变,所以这种
操作模式称为开关模式。

使用特权

评论回复
5
xuanhuanzi|  楼主 | 2018-3-18 18:13 | 只看该作者
连续计数模式
如果定时器工作在连续计数模式且CEN (定时器使能位)置1,如果IE(中断使能位)设置为1, 当
TDR =TCMPR 时,相关的中断信号产生。用户可以立即改变TCMPR 的值,而不需要禁用或重启定时器计
数。例如,TCMPR 的值先被设置为80(TCMPR 的值应当小于224-1 并且大于1),当TDR 的值等于80
时,如果IE (中断使能位)设置为1,定时器产生中断,TIF(定时器中断标志)将被置位,产生中断信号
并送到NVIC 通知CPU,且CEN 保持为1 (持续使能计数),但是TDR 的值不会返回到零,而是继续计
数81,82,83,……to 224-1, 0, 1, 2, 3, …… to 224-1 。接下来,如果用户设置TCMPR 为
200,且TIF 被清零。当TDR 的值达到200,定时器中断发生,TIF 被置位,产生中断信号并送到NVIC
再次通知CPU。最后,用户设置TCMPR 为500,并再一次清零TIF,当TDR 的值达到500,定时器中断
发生,TIF 被置位,产生中断信号并送到NVIC 通知CPU。从应用的角度看,中断的产生取决于TCMPR。
在该模式下,定时器计数是连续的,所以这种操作模式被称为连续计数模式。

使用特权

评论回复
6
xuanhuanzi|  楼主 | 2018-3-18 18:26 | 只看该作者
深入重点:
不要拘泥于 PC机的 C编程,要为自己灌输微控制器编程思想,“主程序+中断服务函数”组合的架构或称为前后台系统。
主函数与中断服务函数不但是互相独立,而且是相互共享的。

使用特权

评论回复
7
huangcunxiake| | 2018-3-18 18:28 | 只看该作者
4 组32-位定时器,带24 位向上定时器和一个8 位的预分频计数器
这个重要,是向上的,也就是从0开始吧

使用特权

评论回复
8
huangcunxiake| | 2018-3-18 18:28 | 只看该作者
或者说你设置的是多少比如你设置初值8,那么就从8开始。是这个意思吧

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

173

主题

2225

帖子

3

粉丝