|
本帖最后由 chylove 于 2013-4-10 22:22 编辑
求各位大神帮我看为什么会出现这样的情况??
#include <Servo.h>
Servo servo1; //舵机1
Servo servo2; //舵机2
int x,i=1,k; //问题标记①
void setup()
{
servo1.attach(3);
servo1.write(125);
servo2.attach(5);
servo2.write(125);
}
int Lfoot() //定义舵机1函数
{
for(x=125;x>70;x-=i)
{
servo1.write(x);
delay(10);
}
}
int Rfoot() //定义舵机2函数
{
for(x=125;x>70;x-=i)
{
servo2.write(x);
delay(10);
}
}
void loop()
{
static int j=0;
if(j==0)
{
Wpos(); // Wpos()是我编的一个函数,已定义,这里为了省时间不写出来。
Lfoot(); //问题标记②
j=j+1;
}
for(k=1;k<2;k++) //(问题标记③)注释:如果k=1,调用函数Lfoot(),如果k=2,调用函数Rfoot().
{
if(k=1)
{
Lfoot();
}
if(k=2)
{
Rfoot();
}
}
}
问题如下: 1、 请问int i 后,假如i没有定义i的数值,那i是什么数值呢?应该是0吧。
2、如果将问题标记③的循环中的 k 改为 i 就可正常运行。为什么这样呢??……
3、在问题2将 k改为 i 的情况下(这时程序正常运行),如果将问题标记①中的int i=1,改为int i,并在void loop()
中static in j =0语句前面加上int i=1,然后,这里面的问题标记②中的Lfoot()就不运行了,后面的for()循环也
没反应。那是为什么呢?望指教。。。
就是说,问题标记①要写成int i = 1; 问题标记③的for()循环里面的全部改为i,即可正常运行,缺一不可,我不知道这是为什么,望各位大虾指教。。。Thank you!!!! |
|