历史上的今天

今天是:2024年10月10日(星期四)

正在发生

2019年10月10日 | MSP430学习笔记(2)定时器A

发布者:innovator8 来源: 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 引用地址:MSP430学习笔记(2)定时器A

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

推荐阅读

据北京青年报报道,10月7日,一名30多岁的男子独自走入新疆巴音郭楞西南部的塔克拉玛干沙漠内,随即迷失方向,与该男子同行的伙伴立即向且末县公安局报警。由于沙漠区域面积广大,民警派出无人机进行寻找,最终在距离沙漠公路约2公里的地方找到了该男子,随后,民警让无人机“引路”将该男子从沙漠中顺利带出。据且末县公安局的任警官介绍,10月7日走入沙...
printf 和scanf函数是C语言中最常用的输入出函数,从学习C语言开始,就开始使用这两个函数,然而当写用C语言写单片机程序时却不能使用这两个函数,总觉得单片机的C语言和一般的C语言差别很大,写起来不大方便;其实,单片机的C语言也是标准C语言上扩展或是改动的,都支持格式化输入输出函数(printf 和scanf);事实上,printf,scanf只负责格式化输入输...
长期以来,由于我国 OLED 微型显示器产业上游的原材料和设备行业起步晚,部分关键技术落后于欧美日韩等发达国家, 光刻机、有机发光材料、真空蒸镀设备、光刻胶等仍主要依赖于进口。近年来, 奥雷德通过自主研发,突破关键技术,掌握了OLED 微型显示器设计、制造和生产的核心技术,成功将产品推出国门,在微型显示器领域扭转了显示面板长期落后于欧美...
今日一加官方正式公布了下半年的新机——一加9RT,其将于10月13日的线上发布会中正式登场。根据官方透露,这款手机即为上半年一加9R的继任者,在原有基础上进行了配置和外观的升级,整机感觉更加精致。此前爆料显示,一加9RT将搭载高通骁龙888芯片,采用6.55英寸120Hz刷新率的AMOLED屏幕,后置50MP索尼IMX766主摄+16MP索尼IMX481超广角+2MP黑白镜头的三摄...

史海拾趣

问答坊 | AI 解惑

集成电路名词通俗解释

集成电路名词通俗解释   1.集成电路     随着电子技术的发展及各种电器的普及,集成电路的应用越来越广,大到飞入太空的“神州五号”,小到我们身边的电子手表,里面都有我们下面将要说到的集成电路。  我们将各种电子 ...…

查看全部问答∨

430学习笔记

程序匠人的430学习笔记!传上来大家看看!也赚点钱,继续看东西去! …

查看全部问答∨

DIY VGA活动硬件功能确定与原理图讨论

11月24日 -硬件原理图,欢迎讨论 https://bbs.eeworld.com.cn/thread-90402-1-1.html ----------------------------------------------------------------------------- STM32 & Allegro 8M Graphics 活动硬件实现功能介绍     ...…

查看全部问答∨

s3c2410最小系统板出现问题!急~~~!

bootloader能通过JTAG下载进去,可是没有跑起来!串口没有打印信息出来,LED小灯也不亮!请问是什么原因啊!谢谢,!急!我去掉了一些硬件,如SD,I2S,但是我bootloader没有改变,会是这方面的影响吗?谢谢!…

查看全部问答∨

请问ROM/bin文件的格式是如何被执行处理的?

请问ROM/bin文件的格式是什么如何执行处理的?   例如在【显示设置】中的 1234512345,在手机/MP4的ROM中发现是DF5FBBB9BA的,请问做了那些处理?变换的方式是什么?   二进制的:   1234512345   000 ...…

查看全部问答∨

CE6.0下,GPIO中断问题

我在ICOP的X86板子上使用驱动程序处理GPIO中断,设置为低电平触发。问题是我把引脚接到低电平时,就会不停地触发中断,IST是这样写的: DWORD WINAPI ISTThread(LPVOID lpv) {     PIST_INFO IstData = (PIST_INFO) lpv;   &nbs ...…

查看全部问答∨

该选择什么样的开发板了?

本人正努力向嵌入式领域进军,因此想购买开发板用于学习,当然如果工作中也可以用最好了:-) 我在网上查了下,看到TE2410和TE2440反响都挺好的,请问该选哪种规格的了? 因为TE2410便宜些,TE2440性能好些,价格更不用说贵些。 请给位前辈给我一 ...…

查看全部问答∨

万利网站上1.29更新的EK-STM3210E例子不能安装

如题。安装时报错说安装路径不能包含以下字符/:?"<>|,(路径是不能选择的,该文件默认安装到C盘一个新建的文件夹)。这里有没人下载下来能安装的呢? 打电话问万利客服,他们说是能正常安装的,真郁闷 http://www.manley.com.cn/web ...…

查看全部问答∨

作为ST的忠实用户对STM32的F-2特点解读--兼对比较其他M3

1. 与以往的72 M以下产品线由外代工不同, 这个120M系列是自己的线上生产的 -- 90纳米的工艺. 2. 所谓120M的"0等待"运行是由一个包含64x128的0等待高速缓存实现的,可以"自适应"2个的跳转或中断(个人理解,初次跳转还是有代价的? NXP的 ...…

查看全部问答∨

TI有了F28377S的launchpad!!!

看到了28377s的launchpad! 这是最强大的单核C2000芯片了!! 好想买。。。 看一下这性能!!! …

查看全部问答∨
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

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

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

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