新手入门
- 积分
- 5
- 金钱
- 5
- 注册时间
- 2016-1-9
- 在线时间
- 30 小时
|
7金钱
void xfor(uint i) //xÖáǰ½øº¯Êý£¬Ç°½ø¶àÉÙ²½
{
while(1)
{
if(xfb==4)
{
xa=xb=1;
xb_=xa_=0;
xfb=1;
i--;
delayms(N);
if(i==0){xa=xb=0; break;}
}
if(xfb==1)
{
xb=xa_=1;
xa=xb_=0;
xfb=2;
i--;
delayms(N);
if(i==0){xa_=xb=0; break;}
}
if(xfb==2)
{
xa_=xb_=1;
xb=xa=0;
xfb=3; //×ß²½±ê־λ
i--;
delayms(N);
if(i==0){xa_=xb_=0; break;}
}
if(xfb==3)
{
xa_=xb=0;
xb_=xa=1;
xfb=4;
i--;
delayms(N);
if(i==0){xa=xb_=0; break;}
}
}
}
和这个
void yfor(uint i) //yÖáǰ½øº¯Êý
{
while(1)
{
switch(yfb)
{
case 4:{a=b=1; b_=a_=0; yfb=1; i--; delayms(M); if(i==0){a=b=0;break;}}
case 1:{b=a_=1; a=b_=0; yfb=2; i--; delayms(M); if(i==0){a_=b=0;break;}}
case 2:{a_=b_=1; b=a=0; yfb=3; i--; delayms(M); if(i==0){a_=b_=0;break;}}
case 3:{b_=a=1; a_=b=0; yfb=4; i--; delayms(M); if(i==0){a=b_=0;break;}}
}
if(i==0) break;
}
}
这个是贴吧大神写的 步进电机单四拍操作函数。
第一个是while 下的for扫描 第二个是 while 下的switch 判断..
我觉得两个函数的作用是完全一样的, 第一个函数也可以用switch来写。。
不知道我的想法对不?
|
最佳答案
查看完整内容[请看2#楼]
没细看,即使这两个函数作用相同,但是相对一if ···else ··而言,当然是 switch case语句效率高了啊
|