新手求指导,关于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会依次亮
因为中断一直会进入,相当于for循环了 qwerghf 发表于 2018-7-18 08:12
因为中断一直会进入,相当于for循环了
恩谢谢。
页:
[1]