全速执行和单步执行的运行结果不一样

2019-07-26 14:54发布

在调试过程中,发现全速执行和单步执行的运行结果不一样,

同样是单步执行,两次的运行结果也不一样,

这是怎么回事啊?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
11条回答
Viviansyw
2019-07-28 07:59
i1mcu 发表于 2014-9-4 23:51
怎么不一样?

我现在也遇到这个问题,希望您能帮我看看。现象是单步正确,全速结果错误,只有一个主程序,暂时没涉及中断。这是一个ADC程序,单片机是MSP430F5529A,程序如下:
void main(void)
{
  WDTCTL = WDTPW+WDTHOLD;                   // Stop watchdog timer
  //////P6SEL |= 0x40;                           
  //P7DIR  |= 0XFE;
// P7SEL |= 0x0c;
  P6SEL |= BIT6;                            // Enable A/D channel A6,P6.6 input anolog voltage
  ADC12CTL0 = ADC12ON+ADC12SHT0_2;          // Turn on ADC12, set sampling time
  ADC12CTL1 = ADC12SHP;                     // Use sampling timer
  ADC12MCTL0 = ADC12SREF_2+ADC12INCH_6;                 // Vr+ = VeREF+ (ext) and Vr-=AVss
  ADC12CTL0 |= ADC12ENC;                    // Enable conversions

while(1)
{
    ADC12CTL0 |= ADC12SC;                   // Start conversion-software trigger
    while (!(ADC12IFG & BIT0));//while (!(ADC12IFG & BIT0));
    ad= ADC12MEM0;
}
}
全速的时候所有的结果都是4095,极大值。但是单步就能产生相对稳定的结果,想请问这是怎么回事,我该如何解决?
谢谢啦!

一周热门 更多>