cpholr1 发表于 2011-5-2 22:19:30

求助 ,这个430定时器是怎么样进入中断函数的???

程序是TI给的官方代码 ,基于149的

代码如下:

#include<msp430x14x.h>

void main(void)
{
WDTCTL = WDTPW + WDTHOLD;               // Stop WDT
P1DIR |= 0x01;                            // P1.0 output
CCTL0 = CCIE;                           // CCR0 interrupt enabled
CCR0 = 50000;
TACTL = TASSEL_2 + MC_2;                  // SMCLK, contmode

_BIS_SR(LPM0_bits + GIE);               // Enter LPM0 w/ interrupt
}

// Timer A0 interrupt service routine
#pragma vector=TIMERA0_VECTOR
__interrupt void Timer_A (void)
{
P1OUT ^= 0x01;                            // Toggle P1.0
CCR0 += 50000;                            // Add Offset to CCR0
}




问题是这个程序如何进入中断的???
程序中没有开启timer a 中断   开启了捕获比较寄存器的中断   这个有什么区别?、

另外采用的是连续计数模式 计数到65536,这样的话,CCR0给它一个值为什么能够 产生作用呢?


求大神 !!!拜大神!@!!!

coolfzl2008 发表于 2011-5-4 20:51:11

楼主说的定时器A的中断没有开启 值得是哪个?是TAIE么 那个是定时器溢出中断是定时器计数溢出时置位,而CCIEx是比较捕获中断 程序中给CCR0一个初值TAR计数到这个值时 产生中断两个中断不是一个概念
连续计数模式下TAR计数到0xffff时就会自动置零此时TAIFG置位

PS:偶也是刚开始学习430不知道说的对不对……

cepabo 发表于 2011-5-7 16:54:36

CCR0 += 50000;加了以后CCR0会溢出,下次TAR就与新的CCR0值比较了,因此CCIE比较中断产生的间隔就是50000
页: [1]
查看完整版本: 求助 ,这个430定时器是怎么样进入中断函数的???