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

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

此问题尚无答案
All Replies
  • 秀才396分

    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++

  • 秀才396分

    自己顶一下

  • 状元52963分

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

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

    我用的是CCS7.

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

    确认答案的话,帮忙点赞 “是”

    - ERIC

  • 举人1070分

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

  • 状元36811分

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

    TI的忠诚粉丝!

  • 秀才490分

    看錯~~~~~(修改)

  • 秀才325分

    谁告诉你 int j上限为255.

  • 秀才325分

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

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

  • 秀才396分

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

    程序没有进行优化。

  • 秀才396分

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

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

  • 状元52963分

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

    ERIC

    确认答案的话,帮忙点赞 “是”

    - ERIC

  • 举人1070分

    j是不是一个数组的下标?是不是数组溢出了?

  • 秀才396分

    你用的是ccs7,我是ccs3.3,里面似乎没有这个例程吧?

  • 秀才396分

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

    示意程序:

    int iCount=0;

    int flag =1;

    while(flag)

         if(iCount>3000)

                 flag=0;

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

  • 举人1070分

    这么诡异,会不会是固定运行一段时间后就崩溃呢,就是说,跟循环无关。

    我以前碰过这样的问题,刚开始也怀疑是哪里有问题,后来发现其实是时间问题,运行一会儿后一定出错,最后的解决方案————

    把芯片拆下来,把板扔了~~~