TA0和TA1到底什么关系啊

2019-03-24 12:22发布

今天几乎就纠结在这TA0和TA1的设置中了。手册上对TA1根本就没有任何提及。可是在仿真的时候,TA1拥有和TA0完全一样的寄存器,而且头文件里对它们都有定义。可是这两个却总是不能同时运行。同样的程序,TA0能用,修改成TA1就不行了。下面这个程序就是这样,TA0、TA1都可以计数,但是就TA0可以进中断,TA1就是不行。我真是非常的纳闷啊。求指教啊!#include<msp430g2553.h>#define uint unsigned int#define uchar unsigned  char
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;} 此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
7条回答
Triton.zhang
2019-03-25 06:56
MS430的每个TIMER都有2个中断向量, 以TIMER0为例子:
TIMER0_A0_VECTOR 和TIMER0_A1_VECTOR,
其中A0用来处理CCP0的中断,A1用来处理CCP1,2的中断.
这里的A0,A1不要和TIMER0,TIMER1搞混淆了.

同样,TIMER1也有2个中断向量,TIMER1_A0_VECTOR 和TIMER1_A1_VECTOR。

一周热门 更多>

相关问题

    相关文章