[转]MSP430之—TimerA

定时器A是一个16位的定时/计数器。它有3个捕获/比较寄存器;能支持多个时序控制、多个捕获/比较功能和多个PWM输出;有广泛的中断功能,中断可由计数器溢出产生,也可以由捕获/比较寄存器产生。
一、TimerA的4种工作模式
1.停止模式
用于定时器暂停,并不发生复位,所有寄存器现行的内容在停止模式结束后都可用。当定时器暂停后重新计数时,计数器将从暂停时的值开始以暂停前的计数方向计数。
2.增计数模式
捕获/比较寄存器CCR0用作Timer_A增计数模式的周期寄存器。因为CCR0为16位寄存器,所以该模式适用于定时器周期小于65536的连续计数情况。计数器TAR可以增计数到CCR0的值,当计数值与CCR0的值相等(或定时器值大于CCR0的值)时,定时器复位并从0开始重新计数。
3.连续计数模式
在需要65536个时钟周期的定时应用场合常用连续计数模式。定时器从当前值计数到0FFFH后,又从0开始重新计数。
连续计数模式的典型应用:
产生多个独立的时序信号。利用捕获比较寄存器捕获各种其它外部事件发生的定时器数据。
产生多个定时信号。
4.增/减计数模式
需要生成对称波形的情况经常可以使用增/减计数模式。该模式下,定时器先增计数到CCR0的值,然后反向减计数到0。计数周期仍由CCR0定义,它是CCR0计数器值的2倍。
二、TimerA寄存器说明
寄存器       寄存器说明                 类型    地址    初始状态
TACTL        Timer_A控制寄存器          读写    160H    POR复位
TAR          Timer_A计数器              读写    170H    POR复位
CCTL0        捕获/比较控制寄存器0       读写    162H    POR复位
CCR0         捕获/比较寄存器0           读写    172H    POR复位
CCTL1        捕获/比较控制寄存器1       读写    164H    POR复位
CCR1         捕获/比较寄存器1           读写    174H    POR复位
CCTL2        捕获/比较控制寄存器2       读写    166H    POR复位
CCR2         捕获/比较寄存器2           读写    176H    POR复位
TAIV         中断向量寄存器             读写    12EH    POR复位
1.TACTL 控制寄存器,各位定义:
bit15-10    bit9   bit8   bit7   bit6   bit5   bit4   bit3   bit2   bit1   bit0
--          SSEL1  SSEL0  ID1    ID0    MC1    MC0    --     CLR    TAIE   TAIFG
SSEL1、SSEL0选择进入定时器分频器的时钟源,
SSEL1 SSEL0      输入时钟源      说明
0 0              TACLK           用特定的外部引脚信号
0 1              ACLK            辅助时钟
1 0              MCLK            系统时钟
1 1              INCLK           外部输入时钟
ID1、ID0输入分频系数
ID1 ID0      分频系数
0 0          不分频
0 1          1/2分频
1 0          1/4分频
1 1          1/8分频
MC1、MC0计数模式控制位
MC1 MC0      模式
0 0          停止模式
0 1          增计数模式
1 0          减计数模式
1 1          增/减计数模式
CLR——定时器清除。当该位为1时,定时器复位。
TAIE——定时器中断允许位。
0:禁止定时器溢出中断;
1:允许定时器溢出中断。
TAIFG——定时器溢出标志位。
增计数模式:当定时器由CCR0计数到0时,TAIFG置位;
连续计数模式:当定时器由0FFFFH计数到0时,TAIFG置位;
增/减计数模式:当定时器由CCR0减计数到0时,TAIFG置位。
2.TAR 16位计数器。
3.CCTLx 捕捉/比较控制寄存器,各位定义:
bit15-14    bit13-12   bit11   bit10   bit9   bit8   bit7-5   bit4   bit3   bit2   bit1   bit0
CAPTMOD1~0  CCIS1~0    SCS     SCCIx   --     CAP    OUTMODx  CCIEx  CCIx   OUT    COV    CCIFGx
CAPTMOD1~0:选择捕获模式
0 0  :       禁止捕获模式
0 1  :       上升沿捕获
1 0  :       下降沿捕获
1 1  :       上升沿与下降沿都捕获
CCIS1~0: 捕获事件输入源
0 0 :   选择CCIxA
0 1 :   选择CCIxB
1 0 :   选择GND
1 1 :   选择Vcc
SCS——选择捕获信号与定时器时钟同步、异步关系
0:异步捕获
1:同步捕获(实际中经常使用同步模式,捕获总是有效的)
SCCIx——比较相等信号EQUx将选中的捕获/比较输入信号CCIx(CCIxA,CCIxB,Vcc和GND)进行锁存,然后可由SCCIx读出。
CAP——选择捕获模式还是比较模式。
0:比较模式
1:捕获模式
OUTMODx:  选择输出模式
0 0 0 :  输出
0 0 1 :  置位
0 1 0 :  PWM翻转/复位
0 1 1 :  PWM置位/复位
1 0 0 :  翻转
1 0 1 :  复位
1 1 0 :  PWM翻转/置位
1 1 1 :  PWM复位/置位
CCIEx——捕获/比较模块中断允许位
0:禁止中断
1:允许中断
CCIx——捕获/比较模块的输入信号
捕获模式:由CCIS0和CCIS1选择的输入信号可通过该位读出
比较模式:CCIx复位
OUT——输出信号(如果OUTMODx选择输出模式0,则该位对应于输入状态)
0:输出低电平
1:输出高电平
COV——捕获溢出标志
0:没有捕获溢出
1:发生捕获溢出
当CAP=0时,选择比较模式。捕获信号发生复位。没有使COV置位的捕获事件
当CAP=1时,选择捕获模式。如果捕获寄存器的值被读出前再次发生捕获事件,则COV置位。程序检测COV来判断原值读出前是否又发生捕获事件。读捕获寄存器时不会使溢出标志复位,须用软件复位。
CCIFGx——捕获比较中断标志
捕获模式:寄存器CCRx捕获了定时器TAR值时置位
比较模式:定时器TAR值等于寄存器CCRx值时置位
4.CCRx 捕捉/比较寄存器:可读可写
在捕获模式,当满足捕获条件,硬件自动将计数器TAR数据写入该寄存器。
如果测量某窄脉冲(高电平)的脉冲长度,可定义上升沿和下降沿都捕获。在上升沿时,捕获一个定时器数据,这个数据在捕获寄存器中读出;再等待下降沿到来,在下降沿时又捕获一个定时器数据;那么两次捕获的定时器数据差就是窄脉冲的高电平宽度。
其中CCR0经常用作周期寄存器,其它CCRx相同。
5.TAIV 中断向量寄存器:
Timer_A模块使用两个中断向量。一个单独分配给捕获/比较寄存器CCR0;另一个作为共用中断向量用于定时器和其它的捕获/比较寄存器。
捕获/比较寄存器CCR0中断向量具有最高的优先级。因为CCR0能用于定义增计数和增/减计数模式的周期。因此,它需要最快速的服务。CCIFG0在被中断服务时能自动复位。
CCR1~CCRx和定时器共用另一个中断向量,属于多源中断,对应的中断标志CCIFG1~CCIFGx和TAIFG1在读中断向量字TAIV后,自动复位。如果不访问TAIV寄存器,则不能自动复位,须用软件清除。
-------------------------------------------------------------
15~5        4~ 1        0
0~0         中断向量     0
-------------------------------------------------------------
中断优先级   中断源          缩写       TAIV的内容
最高         捕获/比较器1    CCIFG1     2
             捕获/比较器2    CCIFG2     4
             ......    
             捕获/比较器x    CCIFGx  
------------------------------------------------------------
最低         定时器溢出      TAIFG1     10
             没有中断将挂起    

阅读更多
文章标签: timer 工作
个人分类: MSP430
想对作者说点什么? 我来说一句

msp430 TimerA 捕获

2013年03月08日 1KB 下载

没有更多推荐了,返回首页

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭