微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > MSP430学习笔记(2)定时器A

MSP430学习笔记(2)定时器A

时间:11-27 来源:互联网 点击:
3.定时器A:

所有MSP430系列的FLASH型单片机都含有定时器A(Timer_A),由一个16位定时器和多路比较/捕获通道组成。每个比较/捕获通道都是以16位定时器的定时功能为核心进行单独的控制。

1)定时器由以下部分组成:

a)计数器部分:输入的时钟源具有4种选择,所选定的时钟源又可以1、2、4、8分频作为计数频率。

b)捕获/比较器:用于捕获时间发生的时间或产生时间间隔,每个捕获/比较的结构完全相同,输入输出都决定于各自所带的控制寄存器的控制字,捕获/比较器相互之间独立。

c)输出单元:具有可选的8种输出模式,用于产生用户需要的输出信号并支持PWM。

2)Timer_A寄存器:

a)TACTL:控制寄存器:POR信号后全都自动复位,PUC信号后不受影响。

i.TASSEL1,TASSEL0:选择定时器输入分频器的时钟源,00为TACLK,特定的外部引脚的信号,01为ACLK,10为SMCLK,11为INCLK。

ii.ID1,ID0,输入分频选择,00不分频,01为2分频,10为4分频,11为8分频。(由SSEL1,SSEL0选择时钟源,然后再由ID0和ID1选择分频系数将输入信号分频,分频后的信号才用于计数器计数)。

iii.MC1,MC0:计数模式控制位:00为停止计数,01为增计数模式,10为连续计数模式,11为增减计数模式。

iv.TACLR:定时器清除位。POR或CLR置位时定时器和输入分频器复位。CLR由硬件自动复位,其读出时钟为0.

v.TAIE:定时器中断允许位,1时允许定时器溢出中断。

vi.TAIFG:定时器溢出标志位,增计数由CCR0到0时TAIFG置位,连续计数由0FFFFH计数到0时,TAIFG置位,增/减计数模式定时器由1减到0时TAIFG置位。

b)TAR:16位计数器,计数的主体,可读可写。(PA:当计数时钟不是MCLK时,在计数器停止计数时写,否则与CPU产生时间竞争,推荐先停止定时器,修改控制寄存器,再启动定时器工作)。

c)CCTLx:捕获/比较控制寄存器

i.CM1,CM0:选择捕获模式,00为禁止捕获模式,01为上升沿捕获,10为下降沿捕获,11为上升沿和下降沿都捕获。

ii.CCIS1,CCIS0:在捕获模式中用来定义提供捕获事件的输入源,00选择CCIxA,01选择CCIxB,10选择GND,11选择Vcc。

iii.SCS:选择捕获信号与定时时钟同步,异步关系,0异步捕获,1同步捕获。(异步捕获允许在请求时立即将CCIFG置位并捕获定时器的值,用于捕获信号周期远大于定时器周期的情况。实际常用同步捕获模式)。

iv.比较相等信号EQUx将选中的捕获/比较输入信号CCIx(CCIxA,CCIxB,Vcc,GND)进行锁存,可由SCCIx读出。

v.CAP:选择捕获模式还是比较模式,0为比较模式,1为捕获模式。(由比较模式改为捕获模式的顺序:修改控制寄存器,由比较模式切换到捕获模式,再进行捕获)。

vi.OUTMODx:选择输出模式。000为输出,001为置位,010位PWM翻转/复位,011为PWM置位/翻转,100为翻转,101为复位,110为PWM翻转/置位,111为PWM复位/置位。

vii.CCIEx捕获/比较模块中断允许位。0为禁止中断,1为允许中断。

viii.CCIx:捕获/比较模块的输入信号,捕获模式:由CCIS0和CCIS1选择的输入信号可通过该位读出。比较模式:CCIx复位。

ix.OUT:输出信号,0输出低电平,1输出高电平。

x.COV:捕获溢出标志,0为没有捕获溢出,1为发生捕获溢出。当选择比较模式时,没有使COV置位的捕获事件。当选择捕获模式时,如果捕获寄存器的值被读出前再次发生捕获事件,则COV置位。程序可检测COV来判断原值读出前是否又发生捕获事件。读捕获寄存器时不会使溢出中断标志位复位,需要软件复位。

xi.CCIFGx:捕获比较中断标志。捕获模式时寄存器CCRx捕获定时器TAR值时置位。比较模式定时器TAR值等于寄存器CCRx值时置位。

xii.CCRx:捕获/比较寄存器:在捕获/比较模块中,可读可写。在捕获方式,当满足捕获条件,硬件自动将计数器TAR数据写入该寄存器。如果测量某窄脉冲(高电平)的脉冲长度,可定义上升沿和下降沿都捕获。在上升沿时捕获一个定时器数据,下降沿再捕获一个。其中CCR0经常用作周期寄存器,其他CCRx相同。

xiii.TAIV:中断向量寄存器。Timer_A中断可由计数器溢出引起,也可以来自捕获/比较寄存器。每个捕获/比较模块可独立编程,由捕获/比较外部信号以产生中断。外部信号可以是上升沿,可以是下降沿,可以两者均有。

1.Timer_A模块使用两个中断向量,一个单独分配给捕获/比较寄存器CCR0,另一个作为公用中断向量用于定时器和其他捕获/比较寄存器。

2.捕获/比较寄存器CCR0中断向量具有最高的优先级,因为其能用于定义增计数和增/减计数模式的周期,需要最快速的服务。CCIFG0在中断时能自动复位。

3.CCR1~CCRx和定时器共用另一个中断

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

网站地图

Top