[求助] MSP430FG4619 Timer A0 中断问题!

chenc_44   2012-4-22 19:39 楼主
我很郁闷,连续试了几个sample code都有问题
我的程序:

void main( void )
{
  volatile unsigned int i;
    // Stop the watchdog timer so it doesn't reset our chip
  WDTCTL = WDTPW+WDTHOLD;                   // Stop watchdog timer
  _BIS_SR(OSCOFF + SCG0 + GIE);
  SCFI0|=FN_8;
  FLL_CTL0 |= OSCCAP0+DCOPLUS;                     // set oscillator capacitance   
  do
  {
      IFG1 &= ~OFIFG;                     // Clear oscillator fault flag
      for ( i=50000; i==0; i--);           // Delay
  }
  while (IFG1 & OFIFG);                   // Test osc fault flag                                     // DCO to stabilize.
   __delay_cycles( 1000 );

  TACCTL0 = CCIE;                             // TACCR0 interrupt enabled
  TACCR0 = 2000;
   TACTL = TASSEL_2 + MC_1+ID_3+TAIE;                  // SMCLK, up mode
    _BIS_SR(LPM0_bits + GIE);                 // Enter LPM0 w/ interrupt
    while(1);
}
// Timer A0 interrupt service routine
#pragma vector=TIMERA0_VECTOR
__interrupt void Timer_A (void)
{
  timer++;
}
问题是无法进入中断,timer这个变量始终为0,很简单一个程序出现这个问题我真不知道哪错了,请高人指点!

回复评论 (9)

怎么没人啊
求助啊!
点赞  2012-4-22 20:27
点赞  2012-4-23 13:03
版主!!帮帮忙!!
点赞  2012-4-23 18:52
断点看看程序执行到哪里

程序不全吧?否则能编译通过?
没工作,没女人老婆,没宽带 ,  没钱
点赞  2012-4-23 20:39

回复 5楼 wangfuchong 的帖子

能通过编译,程序也是全的
断点时程序已经到while(1)了,但是TimerA 中断就是不执行
点赞  2012-4-24 05:24
1. 断点设置到Main函数入口,单步运行看程序停止在什么位置,
2. 从代码看不出来有什么问题,估计是你程序停在了时钟设置的地方
2. 查一下你的调试工具设置是否选择正确,如果选成了软件模拟,那就不能判断这句
while (IFG1 & OFIFG);

QQ:906411450
TRITON.ZHANG
点赞  2012-4-24 08:05
timer在哪里声明的?

中断服务程序少一个吧?默认不写也行?
没工作,没女人老婆,没宽带 ,  没钱
点赞  2012-4-24 09:24
我以F5xx为例说明:

#define TIMER1_A1_VECTOR    (48 * 2u) /* 0xFFE0 Timer1_A3 CC1-2, TA1 */
#define TIMER1_A0_VECTOR    (49 * 2u) /* 0xFFE2 Timer1_A3 CC0 */

默认TA1和CCR0不是同一个中断向量。

第一次来的是CCR0中断,往后CCR0+1的时候来TA中断,所以你的程序中断进不去,为什么这么说呢。默认不写的情况可以理解为程序跑飞了。

你干脆可以这么理解,程序进入中断后自动关闭中断。所以不管是跑飞还是什么情况都无法再次进入中断了。没有服务函数啊,老大。

fuchong兄已经说明问题所在了。
点赞  2012-4-26 10:26
lz的程序中没有用到A1这个中断向量吧?变量timer没有定义就。
点赞  2012-4-26 11:05
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复