打印

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

[复制链接]
3610|11
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
lizye|  楼主 | 2014-8-13 14:36 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
沙发
zhenykun| | 2014-8-13 14:36 | 只看该作者
如果在语句执行过程中涉及的变量值一直没有发生改变,结果肯定是一样的。

使用特权

评论回复
板凳
wyjie| | 2014-8-13 14:39 | 只看该作者
zhenykun 发表于 2014-8-13 14:36
如果在语句执行过程中涉及的变量值一直没有发生改变,结果肯定是一样的。 ...

嗯,反之结果不一样说明在语句执行前或过程中相关变量的值有变化!LZ问题中信息量不够哦!

使用特权

评论回复
地板
zhanghqi| | 2014-8-13 14:40 | 只看该作者
LZ看看单步的时效性是不是不在同等的条件下呢?

使用特权

评论回复
5
zhenykun| | 2014-8-13 14:42 | 只看该作者

比如有些数据分两部分在主程序里运算,突然跑进中断后又运算,结果每次出来都不一样

使用特权

评论回复
6
wyjie| | 2014-8-13 14:42 | 只看该作者
同意3楼的说法,看一下时效性吧

使用特权

评论回复
7
lizye|  楼主 | 2014-8-13 14:45 | 只看该作者
好的,结贴了

使用特权

评论回复
8
lizye|  楼主 | 2014-8-13 14:45 | 只看该作者
谢谢楼上的各位朋友,功夫不扎实,需要提高。

使用特权

评论回复
9
zijingzelan001| | 2014-9-4 14:44 | 只看该作者
时效性说得很好,我碰到过一次,就是单步执行都可以的,但是全速执行的时候就陷入了死循环什么都出不来了

使用特权

评论回复
10
i1mcu| | 2014-9-4 23:51 | 只看该作者
怎么不一样?

使用特权

评论回复
11
i1mcu| | 2014-9-4 23:52 | 只看该作者

使用特权

评论回复
12
Viviansyw| | 2015-7-13 17:46 | 只看该作者

我现在也遇到这个问题,希望您能帮我看看。现象是单步正确,全速结果错误,只有一个主程序,暂时没涉及中断。这是一个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,极大值。但是单步就能产生相对稳定的结果,想请问这是怎么回事,我该如何解决?
谢谢啦!

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

852

主题

9757

帖子

2

粉丝