MSP430 定时器A 寄存器(原创)
0赞
相比于前面给出的那张系统框图,我个人而言更喜欢这张图,它简明扼要、清晰明了,给出了msp430定时器A的组成与功能。
有图可见定时器A的功能模块由三部分组成:
1) 计数器部分:输入的时钟源具有4种选择,所选定的时钟源又可以1,2,4或8分频作为计数频率,Timer_A可以通过选择4种工作模式灵活的完成定时/计数功能。
2) 捕获/比较器:用于捕获事件发生的时间或产生时间间隔,捕获比较功能的引入主要是为了提高I/O端口处理事务的能力和速度。不同的MSP430单片机,Timer_A模块中所含有的捕获/比较器的数量不一样每个捕获/比较器的结构完全相同,输入和输出都决定于各自所带的控制寄存器的控制字,捕获/比较器相互之间完全独立。
3) 输出单元:具有可选的8种输出模式,用于产生用户需要的输出信号。支持PWM
在对每个功能模块进行说明前我们先来认识一下Timer_A的各个控制寄存器,因为每个模块功能的选择实现与这些寄存器的设置紧密相关。
TACTL, Timer_A控制寄存器 |
|||||||
15 |
14 |
13 |
12 |
11 |
10 |
9 |
8 |
Unused |
TASSELx |
||||||
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
IDx |
MCx |
Unused |
TACLR |
TAIE |
TAIFG
|
名称 |
位置 |
说明 |
Unused |
15~10 |
未使用位 |
TASSELx |
9~8 |
TA时钟源选择 00 TACLK 01 ACLK 10 SMCLK 11 INCLK |
IDx |
7~6 |
输入分频。这些位为输入时钟分频选择 00/1 01/2 10/4 11/8 |
MCx |
5~4 |
模式控制,当TA不用于节省功耗时,将MCx=00h 00停止模式:定时器停止 01增模式:定时器计数到TACCR0 10连续模式:定时器计数到0FFFFh 11增减模式:定时器计数到TACCRO,然后减到0000h |
Unused |
3 |
未使用位 |
TACLR |
2 |
定时器清零位。该位置位会复位TAR,时钟分频和计数方向。TACLR位会自动复位并读出值为0 |
TAIE |
1 |
TA中断允许。该位允许TAIFG中断请求 0 中断禁止 1 中断允许 |
TAIFG |
0 |
TA中断标志位 0 无中断挂起 1中断挂起 |
TAR,Timer_A |
|||||||
15 |
14 |
13 |
12 |
11 |
10 |
9 |
8 |
TARx |
|||||||
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
TARx |
TARx 位15~0
Timer_A寄存器。TAR寄存器是Timer_A的计数器。
TACCTLx,捕获比较控制寄存器 |
|||||||
15 |
14 |
13 |
12 |
11 |
10 |
9 |
8 |
CMx |
CCISx |
SCS |
SCCI |
Unused |
CAP |
||
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
OUTMODx |
CCIE |
CCI |
OUT |
COV |
CCIFG |
名称 |
字段 |
说明 |
CMx |
15~14 |
捕获模式 00 不捕获 01 上升沿捕获 10下降沿捕获 11 上升和下降沿都捕获 |
CCISx |
13~12 |
捕获比较选择,该位选择TACCRx的输入信号 00 CCIxA 01CCIxB 10GND 11VCC |
SCS |
11 |
同步捕获源,该位用于将捕获通信和时钟同步 0 异步捕获 1同步捕获 |
SCCI |
10 |
同步的捕获/比较输入,所选择的CCI输入信号由EQUx信号锁存,并可通过该位读取 |
Unused |
9 |
未使用 |
CAP |
8 |
捕获模式 0比较模式 1捕获模式 |
OUTMODx |
7~5 |
输出模式位。 000 OUT位的值 001置位 010翻转/复位 011置位/复位 100翻转 101复位 110翻转/复位 111复位/置位 |
CCIE |
4 |
捕获比较中断允许位,该位允许相应的CCIFG标志中断请求 0 中断禁止 1 中断允许 |
CCI |
3 |
捕获比较输入。所选择的输入信号可以通过该位读取 |
OUT |
2 |
对于输出模式0,该位直接控制输出状态 0 输出低电平 1输出高电平 |
COV |
1 |
捕获溢出位。该位表示一个捕获溢出发生。COV必须由软件复位。 0 没有捕获溢出发生 1 有捕获溢出发生 |
CCIFG |
0 |
捕获比较中断标志位 0 没有中断挂起 1有中断挂起 |
TAIV,Timer_A 中断向量寄存器 |
|||||||
15 |
14 |
13 |
12 |
11 |
10 |
9 |
8 |
O |
O |
O |
O |
O |
O |
O |
O |
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
O |
O |
O |
O |
TAIVx |
o |
TAIVx Bits 15~0 Timer_A 中断向量值
TAIVx的内容 |
中断源 |
中断标志 |
中断优先级 |
00h |
无中断挂起 |
—— |
|
02h |
捕获比较1 |
TACCR1 CCIFG |
最高 |
04h |
捕获比较2(MSP430x20xx中没有) |
TACCR2 CCIFG |
|
06h |
保留 |
—— |
|
08h |
保留 |
—— |
|
0Ah |
定时器溢出 |
TAIFG |
|
0Ch |
保留 |
—— |
|
0Eh |
保留 |
—— |
最低 |
16为定时器A有两个中断向量:
TACCR0 CCIFG的TACCR0中断向量和所有其他CCIFG和TAIFG中断向量
在捕获模式下,当一个定时器的值捕获到响应的TACCRx寄存器时,CCIFG中断标志置位。在比较模式下,如果TAR计数到相应的TACCRx值时,CCIFG标志置位。软件可以清除或置位任何一个CCIFG标志。当相应的CCIE和GIE置位时,CCIFG标志就会产生一个中断。