极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 9492|回复: 4

关于Arduino编程的问题

[复制链接]
发表于 2013-4-10 01:17:36 | 显示全部楼层 |阅读模式
本帖最后由 chylove 于 2013-4-10 20:08 编辑

   求各位大神帮我看为什么会出现这样的情况??
  #include <Servo.h>
   Servo servo1;  //舵机1
   Servo servo2;  //舵机2
   int x,i=1,j,k; //问题标记①
   void setup()
   {
     servo1.attach(3);
     servo1.write(125);
     servo2.attach(5);
     servo2.write(125);
   }
   int Lfoot()
   {
      for(x=125;x>70;x-=i)  
      {   
        servo1.write(x);
        delay(10);
      }
   }
   int Rfoot()
   {
      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!!!!
回复

使用道具 举报

发表于 2013-4-11 10:41:34 | 显示全部楼层
你试一下 ,定义 int i
然后就直接输出到计算机看看是不是0,或者出错!!定义但没赋值的整型,默认是0,一般都是如此

if里面的语句,应该是 ==号  不是=号!!

你写代码整洁一点!静态变量就统一定义在一个地方,如此就不会出来重复定义变量的问题
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-4-14 05:35:30 | 显示全部楼层
本帖最后由 chylove 于 2013-4-14 06:04 编辑
laofuz1024 发表于 2013-4-11 10:41
你试一下 ,定义 int i
然后就直接输出到计算机看看是不是0,或者出错!!定义但没赋值的整型,默认是0, ...


谢谢,我这里写错了,程序里面if是==的。。。咦,怎么现在没问题了,我郁闷了……还有想问一下,重复定义会出现什么样的情况呢??
回复 支持 反对

使用道具 举报

发表于 2013-4-15 10:42:49 | 显示全部楼层
用了太多的全局变量,并且都是简单的 i,j,k 这种命名,不确定你是否在其他函数里改变了这些值。。
回复 支持 反对

使用道具 举报

发表于 2013-4-17 14:56:59 | 显示全部楼层
chylove 发表于 2013-4-14 05:35
谢谢,我这里写错了,程序里面if是==的。。。咦,怎么现在没问题了,我郁闷了……还有想问一下,重复定 ...

重复定义变量,如果语法允许,就没问题。如果语法不允许就会出错,编译不通过!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 需要先绑定手机号

Archiver|联系我们|极客工坊

GMT+8, 2024-6-1 23:17 , Processed in 0.045869 second(s), 19 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表