极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 9203|回复: 1

求助:arduino转化C51

[复制链接]
发表于 2013-8-6 17:29:03 | 显示全部楼层 |阅读模式
void setup()                                                                           
{
  Serial.begin(9600);
}                                                               
void loop()
{
  int L,R,i1,i2;
  i1=analogRead(analogPin1);
  L=(6762/(i1-9))-4;
  if(L<threshold&&L>0) //物体偏左
  {
    while(1)
    {
      xx+=0.01;
      i2=analogRead(analogPin2);
      R=(6762/(i2-9))-4;
      if(R<threshold&&R>0) //向右移动??
      {
        while(1) //等待左边检测离开
        {
          i1=analogRead(analogPin1);
          L=(6762/(i1-9))-4;
          if(L>threshold&&L>0)
            while(1) //等待右边检测离开
            {
              i2=analogRead(analogPin2);
              R=(6762/(i2-9))-4;
             delay(20);
              if(R>threshold)
              {
               delay(20);

                 //Serial.write(right);
                   if(xx>0&&xx<6)
                 { //Serial.println('1');
                    Serial.write(3);
                }
                 if(xx>6&&xx<12)
                 {Serial.write(2);}
                 if(xx>12)
                 {Serial.write(1);}
                 xx=0;
                delay(20);
                break;
              }
            }
          break;
        }
      }
else //放弃检
      {
        i1=analogRead(analogPin1);
        L=(6762/(i1-9))-4;
        if(L>threshold) break;
      }
    }
  }
  i2=analogRead(analogPin2);
  R=(6762/(i2-9))-4;
if( R<threshold&&R>0) //物体偏右
  {
    while(1)
    {
      xx+=0.01;
      i1=analogRead(analogPin1);
      L=(6762/(i1-9))-4;
      if(!L) break;
      if(L<threshold&&L>0) //向左移动??
      {
        while(1) //等待右边检测离开
        {
          i2=analogRead(analogPin2);
          R=(6762/(i2-9))-4;
          if(R>threshold)
            while(1) //等待左边检测离开
            {
              i1=analogRead(analogPin1);
              L=(6762/(i1-9))-4;
               delay(20);  
              if(L>threshold)
            
              { delay(20);
           
                  //Serial.write(left);
                  if(xx>0&&xx<6)
                 { Serial.write(6);}
                 if(xx>6&&xx<12)
                 {Serial.write(5);}
                 if(xx>12)
                 {Serial.write(4);}
                  xx=0;
                delay(20) ;
                break;
              }
            }
          break;
        }
      }
      else //放弃检??
      {
        i2=analogRead(analogPin2);
        R=(6762/(i2-9))-4;
        if(R>threshold) break;
      }
    }
  }
}
求助大神
回复

使用道具 举报

发表于 2013-8-7 12:40:23 | 显示全部楼层
就是用C在改写一次了?
回复 支持 反对

使用道具 举报

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

本版积分规则

Archiver|联系我们|极客工坊

GMT+8, 2026-6-5 10:07 , Processed in 0.047816 second(s), 19 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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