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

28335两次for循环嵌套程序运行不正常

28335,ccs3.3

在main函数中,有一段代码为:

int i;

int j;

for(i=0;i<100;i++)

{

    for(j=0;j<1000;j++)

        {

           XXXXXX

        }

}

如果j的判别为如上所示,在这段代码后面设定断点,无法执行到后面的语句;

如果j的判别为j<100,程序执行正常。

请教,这是为什么问题导致的,谢谢。

并且做了另一个测试,设定一个1ms计时器,用while判断是否大于某个数值后跳出循环,也会跑飞。

示意程序:

int iCount=0;

int flag =1;

while(flag)

     if(iCount>3000)

             flag=0;

注:iCount在定时器里做iCount++

lee lee2:

自己顶一下

28335,ccs3.3

在main函数中,有一段代码为:

int i;

int j;

for(i=0;i<100;i++)

{

    for(j=0;j<1000;j++)

        {

           XXXXXX

        }

}

如果j的判别为如上所示,在这段代码后面设定断点,无法执行到后面的语句;

如果j的判别为j<100,程序执行正常。

请教,这是为什么问题导致的,谢谢。

并且做了另一个测试,设定一个1ms计时器,用while判断是否大于某个数值后跳出循环,也会跑飞。

示意程序:

int iCount=0;

int flag =1;

while(flag)

     if(iCount>3000)

             flag=0;

注:iCount在定时器里做iCount++

Eric Ma:

我跑过,没问题啊,可以设断点。

你检查一下你的程序,把工程属性里面的优化级别取消试试。

我用的是CCS7.

C:\ti\controlSUITE\device_support\f2833x\v142\DSP2833x_examples_ccsv5\flash_f28335

28335,ccs3.3

在main函数中,有一段代码为:

int i;

int j;

for(i=0;i<100;i++)

{

    for(j=0;j<1000;j++)

        {

           XXXXXX

        }

}

如果j的判别为如上所示,在这段代码后面设定断点,无法执行到后面的语句;

如果j的判别为j<100,程序执行正常。

请教,这是为什么问题导致的,谢谢。

并且做了另一个测试,设定一个1ms计时器,用while判断是否大于某个数值后跳出循环,也会跑飞。

示意程序:

int iCount=0;

int flag =1;

while(flag)

     if(iCount>3000)

             flag=0;

注:iCount在定时器里做iCount++

HH Y:

是不是循环里 j 太大时计算出错了,程序跑飞了?

28335,ccs3.3

在main函数中,有一段代码为:

int i;

int j;

for(i=0;i<100;i++)

{

    for(j=0;j<1000;j++)

        {

           XXXXXX

        }

}

如果j的判别为如上所示,在这段代码后面设定断点,无法执行到后面的语句;

如果j的判别为j<100,程序执行正常。

请教,这是为什么问题导致的,谢谢。

并且做了另一个测试,设定一个1ms计时器,用while判断是否大于某个数值后跳出循环,也会跑飞。

示意程序:

int iCount=0;

int flag =1;

while(flag)

     if(iCount>3000)

             flag=0;

注:iCount在定时器里做iCount++

mangui zhang:

程序中只看到了一个中文封号外,没有发现有问题啊 

28335,ccs3.3

在main函数中,有一段代码为:

int i;

int j;

for(i=0;i<100;i++)

{

    for(j=0;j<1000;j++)

        {

           XXXXXX

        }

}

如果j的判别为如上所示,在这段代码后面设定断点,无法执行到后面的语句;

如果j的判别为j<100,程序执行正常。

请教,这是为什么问题导致的,谢谢。

并且做了另一个测试,设定一个1ms计时器,用while判断是否大于某个数值后跳出循环,也会跑飞。

示意程序:

int iCount=0;

int flag =1;

while(flag)

     if(iCount>3000)

             flag=0;

注:iCount在定时器里做iCount++

SHIH CIH-HUEI:

看錯~~~~~(修改)

28335,ccs3.3

在main函数中,有一段代码为:

int i;

int j;

for(i=0;i<100;i++)

{

    for(j=0;j<1000;j++)

        {

           XXXXXX

        }

}

如果j的判别为如上所示,在这段代码后面设定断点,无法执行到后面的语句;

如果j的判别为j<100,程序执行正常。

请教,这是为什么问题导致的,谢谢。

并且做了另一个测试,设定一个1ms计时器,用while判断是否大于某个数值后跳出循环,也会跑飞。

示意程序:

int iCount=0;

int flag =1;

while(flag)

     if(iCount>3000)

             flag=0;

注:iCount在定时器里做iCount++

user4729463:

回复 SHIH CIH-HUEI:

谁告诉你 int j上限为255.

28335,ccs3.3

在main函数中,有一段代码为:

int i;

int j;

for(i=0;i<100;i++)

{

    for(j=0;j<1000;j++)

        {

           XXXXXX

        }

}

如果j的判别为如上所示,在这段代码后面设定断点,无法执行到后面的语句;

如果j的判别为j<100,程序执行正常。

请教,这是为什么问题导致的,谢谢。

并且做了另一个测试,设定一个1ms计时器,用while判断是否大于某个数值后跳出循环,也会跑飞。

示意程序:

int iCount=0;

int flag =1;

while(flag)

     if(iCount>3000)

             flag=0;

注:iCount在定时器里做iCount++

user4729463:

编译器有时有显示上的BUG.就是运行到那句,但程序显示没运行到那句.

你用变量测测结果如何,不要用断点判断

28335,ccs3.3

在main函数中,有一段代码为:

int i;

int j;

for(i=0;i<100;i++)

{

    for(j=0;j<1000;j++)

        {

           XXXXXX

        }

}

如果j的判别为如上所示,在这段代码后面设定断点,无法执行到后面的语句;

如果j的判别为j<100,程序执行正常。

请教,这是为什么问题导致的,谢谢。

并且做了另一个测试,设定一个1ms计时器,用while判断是否大于某个数值后跳出循环,也会跑飞。

示意程序:

int iCount=0;

int flag =1;

while(flag)

     if(iCount>3000)

             flag=0;

注:iCount在定时器里做iCount++

lee lee2:

回复 Eric Ma:

这种用法应该是没有问题,我在其他计算机上也试过没有问题,现在就是不知道我的编译环境的什么地方导致的这个奇怪的问题出现。

程序没有进行优化。

28335,ccs3.3

在main函数中,有一段代码为:

int i;

int j;

for(i=0;i<100;i++)

{

    for(j=0;j<1000;j++)

        {

           XXXXXX

        }

}

如果j的判别为如上所示,在这段代码后面设定断点,无法执行到后面的语句;

如果j的判别为j<100,程序执行正常。

请教,这是为什么问题导致的,谢谢。

并且做了另一个测试,设定一个1ms计时器,用while判断是否大于某个数值后跳出循环,也会跑飞。

示意程序:

int iCount=0;

int flag =1;

while(flag)

     if(iCount>3000)

             flag=0;

注:iCount在定时器里做iCount++

lee lee2:

回复 user4729463:

不光是没运行到下一句,而是跑飞了。

不知道是什么原因导致的跑飞,把这段注释掉就不会跑飞了

28335,ccs3.3

在main函数中,有一段代码为:

int i;

int j;

for(i=0;i<100;i++)

{

    for(j=0;j<1000;j++)

        {

           XXXXXX

        }

}

如果j的判别为如上所示,在这段代码后面设定断点,无法执行到后面的语句;

如果j的判别为j<100,程序执行正常。

请教,这是为什么问题导致的,谢谢。

并且做了另一个测试,设定一个1ms计时器,用while判断是否大于某个数值后跳出循环,也会跑飞。

示意程序:

int iCount=0;

int flag =1;

while(flag)

     if(iCount>3000)

             flag=0;

注:iCount在定时器里做iCount++

Eric Ma:

回复 lee lee2:

你用我提供的例程试试那个语句。然后进行对比。

ERIC

赞(0)
未经允许不得转载:TI中文支持网 » 28335两次for循环嵌套程序运行不正常
分享到: 更多 (0)