MSP430的CCRx中断在连续计数模式下怎么产生中断的

首先,如果你只是用连续计数模式,哪么CCTLx(比较捕获寄存器)根本可以不设置,

其次,CCR0的初值没有设置,中断只会在定时器溢出时才能发生。

然后,第二个中断,你是想用CCR1,CCR2吧,,也是因为你没设置初值,TAIV的值只会是10,也就是溢出中断产生才会进中断。case中的2,4是计数值到CCR1,2而使中断标志置位的。

。。。

最后,你每次中断后,只是把CCR0的值加4,没有做其它任何事,啥效果都没有。

CCRX中断触发是这样的:

首先是对它们付初值,在计数达到CCRX中的其中一个的数字时,产生中断,。然后根据TAIV的值作出你想做的事情。接着继续主函数,当达到第二个CCRX值时,才产生中断,重复以上动作。

例如:

CCR0=200;CCR1=500;CCR2=2000;

当计数到200时,中断产生,进入到值为TIMERA0_VECTOR的中断,执行中断中的程序。然后继续主函数,当计数到500时,进入TIMERA1_VECTOR中断,这时TAIV=2,执行case2后的程序。继续计数到2000时,进入TIMERA1_VECTOR中断,这时TAIV=4,执行case4后的程序