首先明白一个概念:定时器A == Timer_A == TA
之后的大部分定时器内容如TACCR0,TACTL等,都指的是定时器A的寄存器
然后,TIMER_A有四种计数模式,下面将一一解释
(为了方便理解,模式顺序与中文手册有些许不同,请谅解)
目录
一、停止模式
直白点就是个暂停,定时器A之前工作于什么模式,进入停止模式后只是计数暂停了,退出这个模式后会继续按照之前的工作模式工作,举个例子,你要从1数到100,数到50时暂停(进入停止模式),计数在50保持不变,然后继续(退出停止模式),你就继续按照之前的计划数数,从50再开始数。没什么特别的,用到的场景也不多。
二、连续计数模式
此模式是增计数模式的一种,即从0数到0XFFFF(65535),然后数到0XFFFF后,重新归零,再进行计数
在这个模式里面,我们需要认识一个置位标志:TAIFG
这个标志在计数到0XFFFF后重置到0的过程中会产生。
如图,可以看见,0XFFFF->0时,TAIFG置位(变1),所以这个标志位可以用来告诉你已经计数65535了,比如说,循环检测TAIFG的值,如果检测到了TAIFG的值变1,就进行巴拉巴拉之类的操作。
三、增计数模式
增计数可以说是定时器A四种计数模式中最重要的一种了,它与上文所说的连续计数很相像,唯一的区别是连续计数会计数到65535,而增计数模式会计数到CCR0,而CCR0的值是可以自己设定的,要注意的是CCR0必须要小于65535。当计数值等于TACCR0(或者大于的时候),定时器计数复位并重新从零开始计数。
与连续计数模式不同,增计数有两个标志位,分别是TAIFG与CCIFG。他们的置位操作并不相同。图中很明确说明了TAIFG与CCIFG的置位条件,这里就不多费笔墨了。
需要注意的一点是,TAIFG置位指的是从0数到CCR0(CCR0是你自己设置的数),这时候的实际计数次数是CCR0+1次,如CCR0=3999,那么计数4000次是TAIFG才会置位。同样的,CCIFG是数3999次置位(0--CCR0-1)。
下面是一些关于重置计数周期的相关说明:(所以为什么不直接设置其他定时器的增计数呢?)
四、 增减计数模式
此模式与三中讲的增计数很相似,唯一的区别就是数到CCRO会往下数而不是置0
置位如下:
以上就是全部的内容了,可能看起来很简单(实际上就是很简单),看明白了就会了,当然,对初学者可能有些难以理解,建议多看些相关的文章,想明白了你就会发现这其实很简单。
最后,本文如有错误欢迎指正。
参考文献:《MSP430中文手册(参考版)》
---真的是参考版,内容不能说乱吧,只能说是一塌糊涂