This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

28335 cpu定时器1无法进行多重if判断?



如题,我在编写28335 cpu定时器1的中断服务程序时发现,如果在中断程序里面加上两个条件判断(if嵌套)程序运行就会出错,(编译没问题,只是运行结果不对),而在里面只加一个条件判断,运行结果就正确,(这里的条件判断只是简单的判断某个布尔变量的值为0或1,不存在逻辑上的问题)28335 cpu定时器1在使用时有什么要注意的吗?(通常这个定时器不是给用户使用的),麻烦大家了.

  • 没有碰到你说的这种情况,如果不行你就换另一个定时器用用吧。

  • 只要能进入中断   就说明28335的中断配置没有问题 

    关于进入中断后的if判断出错肯定不是中断的问题 

    中断中需要注意的就是不要放入过多的运算和操作    避免影响其他程序的运行

  • 我的中断里面最开始是调用了两个比较大的函数,考虑到这个问题,我把这两个函数化简为一个简单的函数.代码如下:

    if(aaa == 0)
    {
        if(bbb == 0)
     {
         fff = 5*1;
     }
     else
     {
         fff = 4*1;
     }
    }
    else
        {
      fff = 3*1;
         }

    aaa与bbb均为bool变量,运行程序后发现,只有当aaa=1时程序运行结果才正确.这个原因一直分析不出来,当aaa=0时这个函数应该不存在你说的过多的运算和操作吧?谢谢你的解答,麻烦了.