msp430学习笔记-TA

定时器,CCR2,CCR1三者共用一个中断向量

定时器A是一个16位的定时/计数器。它有3个捕获/比较寄存器;能支持多个时序控制、多个捕获/比较功能和多个PWM输出;有广泛的中断功能,中断可由计数器溢出产生,也可以由捕获/比较寄存器产生。

TimerA的4种工作模式

1.停止模式

停止模式用于定时器暂停,并不发生复位,所有寄存器现行的内容在停止模式结束后都可用。当定时器暂停后重新计数时,计数器将从暂停时的值开始以暂停前的计数方

向计数。例如,停止模式前,Timer_A工作于增/减计数模式并且处于下降计数方向,停止模式后,Timer_仍然工作于增/减计数模式,从暂停前的状态开始继续沿着下降方向开始计数。如果不需这样,则可通过TACTL中的CLR控制位来清除定时器的方向记忆特性。

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 控制寄存器,各位定义:


15-10

9 8 7
6


5


4


3


2


1


0


未用

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 捕捉/比较控制寄存器,各位定义:


15 14

13 12 11 10 9
8


7 6 5


4


3


2


1


0


CAPTMOD1~0

CCIS1~0 SCS SCCIx  
CAP


OUTMODx


CCIEx


CCIx


OUT


COV


CCIFGx

CAPTMOD1~0——选择捕获模式

00:禁止捕获模式
01:上升沿捕获
10:下降沿捕获
11:上升沿与下降沿都捕获

CCIS1~0——捕获事件输入源

00:选择CCIxA
01:选择CCIxB
10:选择GND
11:选择Vcc

SCS——选择捕获信号与定时器时钟同步、异步关系

0:异步捕获
1:同步捕获(实际中经常使用同步模式,捕获总是有效的)

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

CAP——选择捕获模式还是比较模式。

0:比较模式
1:捕获模式

OUTMODx——选择输出模式

000:输出
001:置位
010:PWM翻转/复位
011:PWM置位/复位
100:翻转
101:复位
110:PWM翻转/置位
111:PWM复位/置位

定时器A的输出单元输出模式有8种

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
没有中断将挂起  
时间: 2024-12-20 03:04:00

msp430学习笔记-TA的相关文章

msp430学习笔记-msp430g2553

C语言例程:http://wenku.baidu.com/link?url=49JzNSvt3m0fRuf8SWTEM8yEw1yzqr4lBR-QbX8FddcmjTVYnDhuR97wB60HNf07lJmmXbYH6Z1TtleYAE7b1LH9gfvjEGjX01oXZM7CgRO 电设工作小结之——MSP430G2553学习笔记——1 http://blog.sina.com.cn/s/blog_6cd2030b01017x71.html 电设工作小结之——MSP430G2553学习笔

msp430学习笔记-IO及低功耗

引用:http://bbs.ednchina.com/BLOG_ARTICLE_3013511.HTM MSP430F149有6个8位的IO口,其中P1,P2口占两个中断向量,共可以接16个中断源.还可以直接利用P口的输入输出寄存器,直接对外进行通信.因为所有的IO口都是和其他外设复用的,因此在用端口前都要用功能选择寄存器选定所用的功能是外设还是P口,还要在方向寄存器中确定是输入还是输出 MSP430F149的端口功能 端口 功能 P1,P2 I/O,中断功能,其他片内外设功能 P3,P4,P5

msp430学习笔记-USART

本文引用:http://bbs.ednchina.com/BLOG_ARTICLE_3013784.HTM MSP430F149有两个USART通讯端口,其性能完全一样,每个通讯口可通过RS232和RS485等芯片转换,与之相应的串行接口电路通讯.MSP430F149支持串行异步和同步通讯,每种方式都具有独立的帧格式和独立的控制寄存器. USART异步通信 MSP430串行异步通信模式通过两个引脚:接收引脚URXD和发送引脚UTXD与外界相连.异步帧格式由一个起始位,7或8个数据位,校验位(奇/

msp430学习笔记-ADC12

本文引用:http://bbs.ednchina.com/BLOG_ARTICLE_3013748.HTM MSP430单片机的ADC12模块是一个12位精度的A/D转换模块,它具有高速度,通用性等特点.从以下ADC12结构框图中可以看出,ADC12模块是由以下部分组成:输入的16路模拟开关,ADC内部参考电压源,ADC12内核,ADC时钟源部分,采集与保持/触发源部分,ADC数据输出部分,ADC控制寄存器等. ADC12模块的所有寄存器 ADC12CTL0: SHT1x:采样保持时间.定义了寄

msp430学习笔记-实现开方log等计算及FFT算法(待续)

MSP430 FFT算法实现 http://bbs.21ic.com/icview-391532-1-1.html http://blog.sina.com.cn/s/blog_6cd2030b01018fp8.html FFT算法的物理意义 http://blog.csdn.net/hzn407487204/article/details/6249945 FFT算法的完整DSP实现 http://blog.csdn.net/xiahouzuoxin/article/details/979045

msp430学习笔记-时钟及延时函数

引用:http://blog.chinaunix.net/uid-24343357-id-3271380.html MCLK默认时钟源是DCOCLK,SMCLK默认时钟源也是DCOCLK,DCOCLK默认约为1.1MHZ(1126.4KHz),ACLK默认为32768HZ 系统复位后MCLK和SMCLK的频率在0.8MHz~1.5MHz,即819.2KHz~1536KHz.系统启动后,可以调整RSELx(基本时钟系统控制寄存器1BCSCTL1前3位).DCOx(DCO控制器DCOCTL前5位).

msp430学习笔记-DAC12

MSP430F169 的DAC12 模块有2 个DAC 通道,并且可以用DAC12GRP控制位将多个DAC12通道组合起来,实现同步更新,硬件还能确保同步更新独立于任何中断或者NMI事件. DAC12模块特点:8位或12位分辨率可调.可编程时间对能量的损耗.可选内部或外部参考源.支持二进制原码和补码输入.具有自校验功能.可以多路DAC同步更新.还可用DMA等. 这里实现的是较为简化的版本,需要可以自己添加或改写功能,如:初始化函数内部调用自校验的函数,可以在每一次初始化时候均自校验. DAC12

MSP430学习笔记(4)ADC12

几个术语: a)        分辨率(LSB):表示输出数字量变化一个相邻数码所需要输入模拟电压的变化量,它定义为转换器的满刻度电压与2的n次幂,其中n为ADC的位数. b)        量化误差:由于有限数字对模拟值进行离散取值(量化)而引起的误差.因此,量化误差理论上为一个单位分辨率.即正负1\2LSB. c)        转换精度:反应实际的ADC模块在量化上与理想的ADC模块进行模数转换的差值. d)        转换时间:指ADC完成一次模/数转换所需要的时间. 2.     

【tapestry3笔记】--tapestry 初探,《 tapestry in action 》第一章学习笔记

由于要维护一个项目,要用到tapestry3这个老框架,虽然这个框架很老,但是在我看来ta的思想还是很先进的---面向组件编程. 由于网上资料少的可怜,辛苦找了很久终于找到一本名为<tapestry in action>的工具书,以下学习笔记均以此书为参考. 正文---tapestry初探 tapestry in action 第一章学习笔记 tapestry是一款以组件为核心的开发框架,组件就向一个黑盒子,我们无需关系组件是如何实现的,只需合理使用即可.这有点像jquery的插件,我们无需关