微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > MSP430F5529 (六)定时器Timer_A-2

MSP430F5529 (六)定时器Timer_A-2

时间:11-28 来源:互联网 点击:
6.4 捕获比较模块
这是在以上介绍的基础上正式讲TA的重要功能。
先看一个寄存器TACCTL0-TACCTL6:(TA中最复杂的寄存器,用到的时候查表啦)

CMx:捕获模式设定 00不捕获
01上升沿捕获
10下降沿捕获
11上升和下降沿都捕获

CCISx:捕获源的选择 00CCIxA
01CCIxB
10GND
11VCC
SCS:同步捕获源,设定是否与时钟同步
0异步捕获
1同步捕获
SCCI:选择的CCI输入信号由EQUx信号锁存,并可通过该位读取。
CAP: 0-比较模式 1-捕获模式
OUTMOD:输出模式控制位。(之后会在输出模块详细解释)
CCIE:中断使能,该位允许相应的CCIFG标志中断请求。
0-中断禁止 1-中断允许
CCI3:捕获比较输入,所选择的输入信号可以通过该位读取
OUT:对于输出模式0,该位直接控制输出状态。
0-输出低电平 1-输出高电平
COV:捕获溢出位。该位表示一个捕获溢出发出,COV必须由软件复位。
0-没有捕获溢出发生 1-有捕获溢出发生
CCIFG:捕获比较中断标志位。
0-没有中断挂起 1-有中断挂起

最后一个寄存器TAIV:(还记得外部中断寄存器吗,里面同样存储的只是一个中断代号)
里面没有TACCR0的中断标志,因为TACCR0优先级最高,有一个专门的中断向量)

这里面的标志位需要软件手动清零。一种情况例外:两个中断同时发生,先响应优先级高的中断,当该中断服务程序结束后,该位的中断标志会自动清零,然后去响应另外一个中断。

6.4.1比较模式
TA启动时默认为比较模式。
(CAP=0时选择比较模式)

比较模式简介:(也就是一般意义上的定时计时模式)
这是定时器的默认模式,当在比较模式下的时候,与捕获模式相关的硬件停止工作,如果这个时候开启定时器中断,然后设置定时器终值(将终值写入TACCRx),开启定时器,当TAR的值增加到和某个TACCRx里面的值相等的的时候,相应的中断标志位CCIFGx置一,同时中断标志位TAIFG置位。若中断允许未开启则只将中断标志位CCIFGx置一。
(还记得51单片机的定时器吗)

注意:当Timer_A要用到TACCR0的值作为终值来计数(也就是增模式或者增减模式),很显然TACCR0的值一定要大于其TACCRx的值,否则那些比TACCR0大的计数值就没有存在的意义了。
下面是我画的一个图。比较形象的解释了工作原理。(期间TACCR的值不改变)
所谓的比较就是,如果计数器TAR中的值和某个TACCRx中的值相等了,那么相应的标志位就会置位。

这只是一个原理,实际应用的时候,会很灵活,通过一个一个设定每次的TACCR值,可以得到想要的各种时间间隔。
总结:比较模式用于选择PWM输出信号或在特定的时间间隔中断。当TAR计数到TACCRx的值时:
○相应的中断标志CCIFG置位;
○内部信号EQUx=1
○EQUx根据输出模式来影响输出信号
○输入信号CCI锁存到SCCI


6.4.2 捕获模式
当CAP=1时,选择捕获模式。捕获模式用于记录时间事件,比如速度估计或时间测量。捕获输入CCIXA和CCLXB连接外部的引脚或内部的信号,这通过CCISX位来选择。CMX位选择捕获输入信号触发沿;上升沿、下降沿或两者都捕获。当输入信号的触发沿到来时,捕获事件发生:
○定时器的TAR值复制到TACCRX寄存器中
○中断标志位CCIFG置位
注意:①捕获信号可能会和定时器时钟不同步,并导致竞争条件的发生。将SCS位置位可以在下个定时器时钟使捕获同步
②如果第二次捕获发生时,第一次捕获的TAR值还没有及时被存到TACCRx,捕获比较寄存器就会产生一个溢出逻辑,COV位在此时置位, COV位必须软件清除。

6.5 输出模块
传统的定时器,都是通过标志位的判断来定时触发事件的。而430则具有输出模块,通过和定时结合起来,可以方便的产生PWM信号或者其它控制信号
每个捕获/比较器都有一个输出口,如P1.1-P1.5对应TA0.0-TA0.4这5个捕获比较器的输出。

输出模式:输出模式由OUTMODx位来确定,如下表对于所有模式来说(模式0除外),OUTx信号随着定时器时钟的上升沿而改变。输出模式2,3,6和7对输出模式0无效,因为此模式下,EQUx=EQU0。
(复位指的是置0)

OUTMODX模式说明
000输出输出信号OUTx由OUT位定义。当OUT位更
新时,OUTx信号立刻更新
001置位当定时器计数到TACCRX值时,输出置位,并保
持置位直到定时器复位或选择了另一个输出模式
010翻转/复位当定时器计数到TACCRX值时,输出翻转。当定
时器计数到TACCR0值时,输出复位
011置位/复位当定时器计数到TACCRX值时,输出置位。当定
时器计数到TACCR0值时,输出复位
100翻转当定时器计数到TACCRX值时,输出翻转。输出
信号的周期将是定时器的2倍
101复位当定时器计数到TACCRX值时,输出复位,并保
持复位直到选择了另一个输出模式
110翻转/置位当定时器计数到TACCRX值时,输出翻转。当定
时器计数到TACCR0值时,输出置位

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top