This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

MSP430F5438多个时钟的问题

TA1CCTL0 = CCIE;  

TA1CCTL1 = CCIE;

TA1CCR0=18*400/8;//定时周期400us

TA1CCR1=18*200/8;//定时周期200us

TA1CTL = TASSEL_2 + MC_1 + TACLR+ID__8;

这几句初始化时钟,然后在#pragma vector=TIMER1_A0_VECTOR和#pragma vector=TIMER1_A1_VECTOR里处理中断服务,理想的效果是能过检测到TIMER1的CCR0和CCR1的中断周期分别是400us和200us,但是现在不论我怎么改,都只能让TIMER1的CCR0和CCR1的中断周期都400us,而且我试过不论怎么修改TA1CCR1,最终CCR1的定时周期都和CCR0周期相等,帮帮忙哦!

  • 这是正常现象,

    TA1只有一个counter(TAR),工作在MC_1模式下,TAR从0计到TA1CCRO,然后在再从0开始几道TA1CCR0.

    当TAR=TA1CCR0时,产生A0中断,当TAR=TA1CCR1时,产生A1中断。

    所以一个周期内A0和A1的中断都只产生一次,两者的间隔都是400uS(区别只是时间点不一样)

    如果要产生200uS的中断,需要在A1的中断里面把TA1CCR1更新下,比如TA1CCR1+=200uS;