伍师傅32 发表于 2012-5-2 23:48:49

TA0和TA1到底什么关系啊

今天几乎就纠结在这TA0和TA1的设置中了。手册上对TA1根本就没有任何提及。可是在仿真的时候,TA1拥有和TA0完全一样的寄存器,而且头文件里对它们都有定义。可是这两个却总是不能同时运行。同样的程序,TA0能用,修改成TA1就不行了。下面这个程序就是这样,TA0、TA1都可以计数,但是就TA0可以进中断,TA1就是不行。我真是非常的纳闷啊。求指教啊!
#include<msp430g2553.h>
#define uint unsigned int
#define uchar unsignedchar

void main()
{
volatile uint i;
WDTCTL = WDTPW + WDTHOLD;
//BCSCTL3 |= LFXT1S_2;
//IFG1 &= ~OFIFG;
//__bis_SR_register(SCG1 + SCG0);
BCSCTL2 |=DIVS_3;
P1DIR |= BIT0 + BIT6;
P1OUT &= ~(BIT0 + BIT6);

CCR0 = 4000;
CCTL0 = CCIE;
TACTL = TASSEL_2 + MC_1 + ID_3;
TA1CCR0 = 5000;
TA1CCTL0 = CCIE;
TA1CTL = TASSEL_2 + MC_1 + ID_3;

//while(1);
_BIS_SR(LPM0_bits + GIE);
}

#pragma vector = TIMER0_A0_VECTOR
__interrupt void Timer0_a0(void)
{
    P1OUT ^= BIT0;
}

#pragma vector = TIMER0_A1_VECTOR
__interrupt void Timer0_a1(void)
{
    P1OUT ^= BIT6;
}

伍师傅32 发表于 2012-5-3 00:38:48

顶一下啊,互联网,书都搜了好久了

lcofjp 发表于 2012-5-3 00:59:51

为啥不仔细的看user's guide呢

USACH 发表于 2012-5-3 15:37:15

为什么不仔细看看user guide   ,datashee上不全……

伍师傅32 发表于 2012-5-4 23:16:23

就是看的user‘s guide,已经找到原因了。中断向量号弄错了,应该是TIMER1_A0_VECTOR,这个才是TA1CCR0的中断号。没有看头文件后面的注释就瞎猜测它的意思了。

wangkangming 发表于 2012-5-25 14:38:37

学习了 哈哈                                 
页: [1]
查看完整版本: TA0和TA1到底什么关系啊