新闻中心

EEPW首页>嵌入式系统>设计应用> MSP430F5529 (六)定时器Timer_A-1

MSP430F5529 (六)定时器Timer_A-1

作者: 时间:2016-11-28 来源:网络 收藏

TACLR位会自动复位并置0
TAIE:定时器中断使能
0:中断禁止
1:中断允许
TAIFG:中断标志位
0:没有中断发生
1:有中断挂起

6.2.2 计数值存放寄存器TAR
①显然,最大存放计数值为0xFFFFh;
②(类似51单片机)可以被用来存放一个初值,然后选用连续模式。这样不断计满再手动填充,从而达到精确计时的效果;
③默认为0,且对该寄存器可以直接赋值;

6.2.3 扩展寄存器TAEX0
很简单,这个寄存器就是为了控制时钟源的二次分频(看结构图)。
该寄存器的低3为定义为TAIDEX:000-111分别表示1-8分频

6.2.4 捕获/比较寄存器TACCR0-TACCR4(共5个)
比较模式下,用来设定计数终值;
捕获模式下用来将捕获的TAR值存放进TACCRx中。

6.3 MC控制的四种工作模式的详细讲解

6.3.1 MC=0停止模式
这是系统默认的模式,定时计数器禁止工作。

6.3.2 MC=1增模式
总结几句话:(红色标记的很重要)
①此模式下严禁从0xffff开始计数;
②注意从0计到TACCR0,实际上记了TACCR0+1个数;
③计到TACCR0后,会回到0重新开始计数;
④如果TAR的值大于TACCR0,这时候会立即从0开始计数;
⑤当定时器计数到TACCR0的值时,中断标志CCIFG位(之后会讲到)置位。当定时器由TACCR0返回0时,TAIFG中断标志置位;
⑥在定时器运行时修改TACCR0,如果新的周期值大于或等于旧的周期值,或大于当前的定时器计数值,那么定时器立刻开始执行新周期计数。如果新周期小于当前的计数值,那么定时器回到0。但是,在回到0之前会多一个额外的计数。

6.3.3 MC=2连续模式
在连续模式中,定时器重复计数到0FFFFH,然后重新从0开始增计数(除非每次重装计数初值)。当定时器从0FFFFH到0时,TAIFG中断标志置位。
应用:连续模式下利用捕获/比较器产生需要的时间间隔。原理是:计数在一直进行,捕获器TACCRX中存有第一个计数终值,每次捕获器计到TACCRX时,会产生中断标志,我们可以在中断服务函数中写入一个计算好的下一个的计数终值,这样无限计算和中断下去,那么该捕获器就会产生一个稳定的时间间隔序列。(其实吧,不明白也没关系。就算明白了,也不好用,因为计算起来很麻烦而且也不好用)
如图:
6.3.4 MC=3增减模式(常用于生成PWM波)
①该模式下,计数方向是固定的,即让定时器停止后再重新启动定时器,它就沿着停止时的计数方向和数值开始计数。如果不希望这样,就需要将TACLR置位来清除方向。TACLR位也会清除TAR的值和定时器的时钟分频。
②此模式下置位情况如下图:

③当定时器运行时,改变TACCR0的值,如果正处于减计数的情况,定时器会继续减到0,新的周期在减到0后开始。
如果正处于增计数状态,新周期大于等于原来的周期,或比当前计数值要大,定时器会增计数到新的周期;如果新周期小于原来的周期,定时器立刻开始减计数,但是,在定时器开始减计数之前会多计一个数。

上一页 1 2 下一页

评论


技术专区

关闭