十一、 Timer A3 <?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />
1)寄存器:
TAIV (0x012E) 中断向量寄存器
TACTL (0x0160) 控制寄存器
CCTL0 (0x0162) 捕获比较控制寄存器0
CCTL1 (0x0164) 捕获比较控制寄存器1
CCTL2 (0x0166) 捕获比较控制寄存器2
TAR (0x0170) 寄存器
CCR0 (0x0172) 捕获比较寄存器0
CCR1 (0x0174) 捕获比较寄存器1
CCR2 (0x0176) 捕获比较寄存器2
2)TACTL中的各位 SSEL1 SSEL0 输入信号
TASSEL2 (0x0400) 未用 0 0 TACLK(特定的外部信号)
TASSEL1 (0x0200) 时钟选择 0 1 ACLK
TASSEL0 (0x0100) 时钟选择 1 0 MCLK
ID1 (0x0080) 输入信号分频: 00 直通; 01:2分频
ID0 (0x0040) 与ID1一起: 10 4分频 11:8分频
MC1 (0x0020) 两位一起:00 停止;01:增记数到CCR0;
MC0 (0x0010) 模式控制:10 连续增记数, 11 增记数到CCR0,减记数到0H;
TACLR (0x0004) 定时器清除位
TAIE (0x0002) 中断允许
TAIFG (0x0001) 定时器溢出标志
#define MC_0 (0*0x10u) /* Timer A mode control: 0 - Stop */
#define MC_1 (1*0x10u) /* Timer A mode control: 1 - Up to CCR0 */
#define MC_2 (2*0x10u) /* Timer A mode control: 2 - Continous up */
#define MC_3 (3*0x10u) /* Timer A mode control: 3 - Up/Down */
#define ID_0 (0*0x40u) /* Timer A input divider: 0 - /1 */
#define ID_1 (1*0x40u) /* Timer A input divider: 1 - /2 */
#define ID_2 (2*0x40u) /* Timer A input divider: 2 - /4 */
#define ID_3 (3*0x40u) /* Timer A input divider: 3 - /8 */
#define TASSEL_0 (0*0x100u) /* Timer A clock source select: 0 - TACLK */
#define TASSEL_1 (1*0x100u) /* Timer A clock source select: 1 - ACLK */
#define TASSEL_2 (2*0x100u) /* Timer A clock source select: 2 - SMCLK */
#define TASSEL_3 (3*0x100u) /* Timer A clock source select: 3 - INCLK */
3)捕获比较控制寄存器 CCTLX 对应的位
CM1 (0x8000) 00 禁止 01 上升沿捕获
CM0 (0x4000) 10 下降沿捕获 11 上升沿与下降沿都捕获
CCIS1 (0x2000) CCIS0和CCIS1输入选择 00 选择CCIXA;
CCIS0 (0x1000) 01 选择CCIXB, 10 GND 11 VCC
SCS (0x0800) 0异步捕获 1 同步捕获
SCCI (0x0400) 捕获比较输入信号与比较输出EQUX同步
CAP (0x0100) 0 比较模式 1 捕获模式
OUTMOD2 (0x0080)
OUTMOD1 (0x0040)
OUTMOD0 (0x0020)
CCIE (0x0010) 1 允许中断 0 禁止中断
CCI (0x0008) 捕获/比较输入信号选择
OUT (0x0004)
COV (0x0002)
CCIFG (0x0001) 中断标志(与CCRX有关)
#define OUTMOD_0 (0*0x20u) /* PWM output mode: 0 - output only */
#define OUTMOD_1 (1*0x20u) /* PWM output mode: 1 - set */
#define OUTMOD_2 (2*0x20u) /* PWM output mode: 2 - PWM toggle/reset */
#define OUTMOD_3 (3*0x20u) /* PWM output mode: 3 - PWM set/reset */
#define OUTMOD_4 (4*0x20u) /* PWM output mode: 4 - toggle */
#define OUTMOD_5 (5*0x20u) /* PWM output mode: 5 - Reset */
#define OUTMOD_6 (6*0x20u) /* PWM output mode: 6 - PWM toggle/set */
#define OUTMOD_7 (7*0x20u) /* PWM output mode: 7 - PWM reset/set */
#define CCIS_0 (0*0x1000u) /* Capture input select: 0 - CCIxA */
#define CCIS_1 (1*0x1000u) /* Capture input select: 1 - CCIxB */
#define CCIS_2 (2*0x1000u) /* Capture input select: 2 - GND */
#define CCIS_3 (3*0x1000u) /* Capture input select: 3 - Vcc */
#define CM_0 (0*0x4000u) /* Capture mode: 0 - disabled */
#define CM_1 (1*0x4000u) /* Capture mode: 1 - pos. edge */
#define CM_2 (2*0x4000u) /* Capture mode: 1 - neg. edge */
#define CM_3 (3*0x4000u) /* Capture mode: 1 - both edges */
4)TAIV 中断向量寄存器
0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 中断向量 | 0 |
中断源 缩写
最高中断优先级: 捕获/比较0 CCIFG0 N。A
捕获/比较1 CCIFG1 2
捕获/比较2 CCIFG2 4
捕获/比较3 CCIFG3 6
捕获/比较4 CCIFG4 8
定时器益出 TAIFG 10
最低优先级: 保留
注意:
TAIFG和CCIFG与其他四个捕获/比较寄存器CCRX相关,如果有任何一个中断允许位置位(CCIEX或TAIE),并且相应的中断标志也置位,则会产生一个中断请求,结合成一个中断向量,在TAIV中可读出。在PC读取TAIV中断向量后,CCIFGX与TAIFG自动复位。
文章评论(0条评论)
登录后参与讨论