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

2019-10-10来源: eefocus关键字:MSP430  学习笔记  定时器A

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和定时器共用另一个中断向量,属于多源中断,对应的中断标志位CCIFG1~CCIFGx和TAIFG1在读中断向量字TAIV后自动复位。若不访问TAIV寄存器,则需软件清除。


4.如果有Timer_A中断标志位,则TAIV为相应的数据。该数据与PC(程序计数器)相加可使系统自动进入响应的中断服务程序。


3)定时器工作原理:


a)停止模式:用于定时器暂停,不发生复位,所有寄存器现在的内容在停止模式结束后都可用。当定时器暂停后重新计数时,计数器将从暂停时的值开始以暂停前的计数方向计数。也可通过CLR来清除定时器的方向记忆特性。


b)增计数模式:捕获/比较寄存器CCR0用作Timer_A增计数模式的周期寄存器,CCR0为16位寄存器,适用于定时周期小于65536的连续计数情况。计数器TAR可以增计数到CCR0的值,当计数值与CCR0值相等(或定时器值大于CCR0时),定时器复位并从0开始计数。


i.当定时器值等于CCR0时,设置标志位CCIFG0为1,当定时器从CCR0计数到0时,设置标志位TAIFG为1。


ii.计数过程中还可以通过改变CCR0的值来重置计数周期。当新周期大于旧周期时,定时器会直接增计数到新周期。


c)连续计数模式:在需要65536个时钟周期的定时器应用场合常用连续计数模式。定时器从当前值计数到0FFFFH后又从0开始计数。当定时器从0FFFFH到0时设置标志位TAIFG。


d)增/减计数模式:需要对称波形的情况经常可以使用增/减计数模式,该模式下,定时器先计数到CCR0的值,然后反向减计数到0。计数周期仍由CCR0定义,它是CCR0的2倍。


4)捕获/比较模块:Timer_A捕获/比较的每个模块都可用于捕获事件发生的时间或产生定时间隔。当捕获时间发生或者定时时间到达都将引发中断。捕获/比较寄存器与定时器总线连接,可在满足捕获条件时将TAR的值写入捕获寄存器;可在TAR的值与比较器值相等时设置标志位。通过CCTLx中的CAPx选择模式,该模块可用于捕获模式,也可用于比较模式。用CCISx1和CCISx2选择捕获的输入信号源,输入信号可以是来自外部引脚的信号,也可以是来自内部的信号。


a)捕获模式:这时如果在选定的引脚上发生设定的脉冲触发沿,则TAR的值写入CCRx。捕获完成后CCIFGx被置位,如果GIE和CCIEx允许,则产生中断。PA:捕获信号与定时器时钟同步,将捕获/比较中断标志置位,并将定时器数值存入捕获寄存器。他们同步特性可避免定时器和捕获信号的时间竞争。非同步信号支持低速定时器的时间应用。捕获时间与定时器时钟可能产生时间竞争,因而导致捕获数据无效。


b)比较方式主要用于软件或者应用硬件产生定时,还可以为D/A转换、马达控制产生PWM信号。独立的输出模块被分配给各个捕获/比较寄存器的每一个,输出模块可以独立运行于比较功能,或以各种方式触发。当TAR的值大于或等于CCR0的值时,EQU0=1;当TAR的值等于相应的CCR1或CCR2时,EQU1=1或EQU2=1。


5)输出单元:每个捕获/比较模块都包含一个输出单元,用于产生输出信号。每个输出单元有8种工作模式,由OUTMOD0~3决定。


6)Timer_A实现PWM:


如果Timer_A定时器的计数器工作在增计数模式,输出采用模式7(复位/置位模式),则可利用寄存器CCR0控制PWM波形的周期,用某个寄存器CCRx来控制占空比。这样Timer_A就能产生任意占空比的PWM波。


改变占空比的方法是:保持CCR0的值(周期不变),改变CCRx的值(占空比变)。

关键字:MSP430  学习笔记  定时器A 编辑:什么鱼 引用地址:http://news.eeworld.com.cn/mcu/ic476733.html 本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。

上一篇:MSP430学习笔记(4)ADC12
下一篇:MSP430 ADC12模块应用范例(2)

关注eeworld公众号 快捷获取更多信息
关注eeworld公众号
快捷获取更多信息
关注eeworld服务号 享受更多官方福利
关注eeworld服务号
享受更多官方福利

推荐阅读

MSP430程序库<十一>定时器TA的PWM输出
定时器是单片机常用的其本设备,用来产生精确计时或是其他功能;msp430的定时器不仅可以完成精确定时,还能产生PWM波形输出,和捕获时刻值(上升沿或是下降沿到来的时候)。这里完成一个比较通用的PWM波形产生程序。硬件介绍:MSP430系列单片机的TimerA结构复杂,功能强大,适合应用于工业控制,如数字化电机控制,电表和手持式仪表的理想配置。它给开发人员提供了较多灵活的选择余地。当PWM 不需要修改占空比和时间时,TimerA 能自动输出PWM,而不需利用中断维持PWM输出。MSP430F16x和MSP430F14x单片机内部均含有两个定时器,TA和TB;TA有三个模块,CCR0-CCR2;TB含有CCR0-CCR67个模块
发表于 2019-10-09
MSP430程序库<十一>定时器TA的PWM输出
MSP430程序库<十二>SVS(电源电压监控器)模块
电源电压监控对于单片机来说,也是经常要用的模块。当需要稳定的工业级产品时,经常要对电源电压监控,以保证单片机系统工作于正常环境或范围中。MSP430F16x提供了一个现成的电源电压监控器模块SVS,方便检测电源电压或者是外部电压,可以设置为电压过低时复位 或置标志位。本程序即完成SVS的设置使用的程序库(msp430f14x没有此模块)。硬件介绍:MSP430单片机含有的SVS模块可以很方便的监控电源电压或外部电压。电源电压监控器(SVS)是用于监控AVCC电源电压或外部电压。 SVS的可配置当电源电压或外部电压下降到低于用户选择的电压级别时设置一个标志,或产生POR复位。SVS模块有以下特点:可以监控AVCC电压;可选择产生
发表于 2019-10-09
MSP430程序库<十二>SVS(电源电压监控器)模块
MSP430程序库<十三>硬件乘法器使用
硬件乘法器不占用CPU周期,有硬件实现,速度比软件实现的乘法速度快很多。msp430f14x、msp430f16x中都含有硬件乘法器模块,方便用户需要速度的时候使用。硬件介绍:在MSP430系列单片机中,硬件乘法器是外围模块,而不是CPU内核的一部分;所以它的活动与否与CPU的活动与否无关,它的寄存器和其他的外围寄存器一样通过CPU指令读写。硬件乘法器模块支持一下功能:无符号乘法、有符号乘法、无符号乘加、有符号乘加;可以支持16*16 16*8 8*16 8*8bits的乘法。硬件乘法器的模块框图如下:硬件乘法器模块的四种操作类型(无符号乘法、有符号乘法、无符号乘加、有符号乘加)是由写入的第一个操作数的位置决定的。这个模块有两个
发表于 2019-10-09
MSP430程序库<十三>硬件乘法器使用
MSP430程序库<十四>DMA程序库
直接存储器存取(DMADirect Memory Access)方式是用硬件实现存储器与存储器之间或存储器与IO设备之间直接进行高速数据传送,不需要CPU的干预。这种方式通常用来传送数据块。MSP430f16x系列单片机内部含有DMA模块,而且几乎内部所有外设都可以触发DMA开始存取数据。这里实现了这个模块的程序通用的函数库,方便使用。硬件介绍:MSP430F15X/16X 系列单片机具有DMA 控制器,从而能够为数据高速传输提供保证。例如,通过DMA控制器可以直接将ADC 转换存贮器的内容传到RAM 单元。MSP430系列单片机扩展的DMA具有来之所有外设的触发器,不需要CPU的干预即可提供先进的可配置的数据传输能力,从而加速
发表于 2019-10-09
MSP430程序库<十四>DMA程序库
MSP430程序库<十五>Flash控制器
一般,在单片机中的Flash存储器用于存放程序代码,属于只读型存储器。而在MSP430些列的单片机中,都可以通过内置的Flash控制器擦除或改写任何一段的内容。另外,msp430的单片机内部还专门留有一段Flash区域(information memory),用于存放掉电后需要永久保存的数据。利用430内部的Flash控制器,可以完成较大容量的数据记录、用户设置参数在掉电后的保存等功能。硬件介绍:要对Flash读写,首先要了解MSP430的存储器组织。430单片机的存储器组织结构采用冯诺依曼结构,RAM和ROM统一编址在同一寻址空间中,没有代码空间和数据空间之分。一般430的单片机都统一编址在0-64k地址范围中,只有少数高端
发表于 2019-10-09
MSP430程序库<十五>Flash控制器
MSP430程序库<十>ADC12模块
msp430内部含有ADC12模块,可以完成12位的模数转换,当对精度或其他指标要求不高时,可以选用430单片机内部的ADC12完成模数转换工作。这里主要实现了一个比较通用的ADC12模块初始化程序,具体的数据存储和处理需要自己在中断处理函数中添加。硬件介绍:msp430单片机内的ADC12模块的特点如下:12位转换精度,1位非线形误差,1位非线形积分误差;多种时钟源给ADC12模块,切本身自带时钟发生器;内置温度传感器;TimerA/TimerB硬件触发器;8路外部通道和4路内部通道;内置参考电压源和6种参考电压组合;4种模式的模数转换;16bit的转换缓存;ADC12关闭支持超低功耗;采用速度快,最高200Kbps;自动扫描
发表于 2019-10-09
MSP430程序库<十>ADC12模块
小广播
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号 电信业务审批[2006]字第258号函 京公海网安备110108001534 Copyright © 2005-2019 EEWORLD.com.cn, Inc. All rights reserved