...1234 发表于 2018-7-17 22:33

新手求指导,关于msp430led流水灯代码问题

函数名称:Timer_A
功    能:定时器A的中断服务函数,在这里通过标志
          控制流水灯的流动方向和流动速度
参    数:无
返回值:无
********************************************/
#pragma vector = TIMERA0_VECTOR
__interrupt void Timer_A (void)
{
    if(flag == 0)
    {
      P2OUT = ~(0x80>>(i++));    //灯的点亮顺序D8 -> D1
    }
    else if(flag == 1)
    {
      P2OUT = ~(0x01<<(i++));    //灯的点亮顺序D1 -> D8
    }
    else
    {
      if(dir)                  //灯的点亮顺序D8 -> D1,D1 -> D8,循环绕圈                        
      {
            P2OUT = ~(0x80>>(i++));
      }
      else
      {
            P2OUT = ~(0x01<<(i++));
      }
    }

......


后面代码省略了,想问的就是 if(flag == 0)
    {
      P2OUT = ~(0x80>>(i++));    //灯的点亮顺序D8 -> D1
    }
这一段话 ,当flag=0时,i++=0,D8亮,这里并没有for语句对i的循环,为什么注释上说D8-D1会依次亮



qwerghf 发表于 2018-7-18 08:12

因为中断一直会进入,相当于for循环了

...1234 发表于 2018-7-18 16:59

qwerghf 发表于 2018-7-18 08:12
因为中断一直会进入,相当于for循环了

恩谢谢。
页: [1]
查看完整版本: 新手求指导,关于msp430led流水灯代码问题