TI中文支持网
TI专业的中文技术问题搜集分享网站

MSP430 仿真过程中点BREAK响应中断问题

21ic网友哈利问一个MSP430 仿真过程中点BREAK响应中断问题,未解决。

当我让程序全速进行时,发现CPU进入低功耗不响应ADC10的中断,但是只要这时候,我按一下BREAK按钮,也就是那个红色的小手,接着通过查看寄存器得知ADC10中断标志已经置位。不可思议的是:紧接着,我按一下单步执行,发现响应了中断。再全速运行,仍然是同样的问题。每次都是这样。。。这是为什么?仿真过程有问题??

程序如下:

#include <msp430.h>
void main(void)
{  unsigned int i;
   WDTCTL = WDTPW + WDTHOLD;
   if(CALBC1_1MHZ==0XFF || CALDCO_1MHZ==0XFF)
   {
          while(1);   
   }
   do
   {
     IFG1 &= ~OFIFG;
     for(i=0xff;i>0;i–);
   }
   while((IFG1&OFIFG));
   P1DIR |= BIT0;
   P1OUT =0;
   ADC10CTL0 |= ADC10ON + ADC10IE + SREF_1 + ADC10SHT_3 + REF2_5V + REFON;
   ADC10CTL1 |= INCH_10 + ADC10SSEL_2 + SHS_1 + CONSEQ_2;
   __enable_interrupt();                   
   TA0CCR0 = 30;                        
   TA0CCTL0 |= CCIE;                          
   TA0CTL = TASSEL_2 | MC_1;               
   LPM0;
}
#pragma vector=TIMER0_A0_VECTOR
__interrupt void timer0_isr(void)
{
   TA0CTL = 0;
   TA0CCR0 =32767;
   TA0CCR1 = 2500;
   TA0CCTL0 &=~CCIE;
   TA0CCTL1 = OUTMOD_3;
   TA0CTL = TASSEL_2 + MC_1;
   ADC10CTL0 |= ENC;
}
#pragma vector=ADC10_VECTOR
__interrupt void ADC10_isr(void)

  P1OUT ^= BIT0;
}

Hardy Hu:

你好!

你指的不响应中断,是因为测了PI BIT0没有反转?

灰小子:

回复 Hardy Hu:

是的

赞(0)
未经允许不得转载:TI中文支持网 » MSP430 仿真过程中点BREAK响应中断问题
分享到: 更多 (0)