Arduino在完成循环之前卡住了一段时间

Arduino在完成循环之前卡住了一段时间,arduino,Arduino,编辑:我得到了完成循环的程序,现在它只是在完成循环之前给了我一些0,所以这里是我代码的更新版本 尝试创建一个程序,首先一个接一个地打开LED,一旦LED全部点亮——一个接一个地关闭LED,并不断地打开和关闭LED。我已经成功地点亮了它们并关闭了它们,但是当程序在完成循环并重新开始之前将它们全部关闭时,它似乎会被卡住一段时间 int t=1000; unsigned long time; int pin; int value; int a; int b; void setup() { //

编辑:我得到了完成循环的程序,现在它只是在完成循环之前给了我一些0,所以这里是我代码的更新版本

尝试创建一个程序,首先一个接一个地打开LED,一旦LED全部点亮——一个接一个地关闭LED,并不断地打开和关闭LED。我已经成功地点亮了它们并关闭了它们,但是当程序在完成循环并重新开始之前将它们全部关闭时,它似乎会被卡住一段时间

int t=1000;
unsigned long time;
int pin;
int value;
int a;
int b;

void setup() {
  // put your setup code here, to run once:
  for(pin=2; pin<8; pin++){
    pinMode(pin, OUTPUT);
  }

  Serial.begin(9600);

}

void more(){
  for(int i=1; i<8; i++){
    for(pin=i; pin<8; pin++){
      digitalWrite(pin,HIGH);
      a=bitRead(PORTD,7);
      b=bitRead(PORTD,2);

      for(pin=2; pin<8; pin++){
        value=bitRead(PORTD,pin);
        if(value==1){
          Serial.print("1   ");
        }
        else{
          Serial.print("0   ");
        }
      }
      Serial.println();
      Serial.println();
      delay(t);
    }
  }
}
void less(){
  for(int j=7; j>=2; j--){
    for(int p=j; p>1; p--){
      digitalWrite(p,LOW);
      a=bitRead(PORTD,7);
      b=bitRead(PORTD,2);

      for(pin=2; pin<8; pin++){
        value=bitRead(PORTD,pin);
        if(value==1){
          Serial.print("1   ");
        }
        else{
          Serial.print("0   ");
        }
      }
      Serial.println();
      Serial.println();
      delay(t);
    }
  }
}

void loop() {
  // put your main code here, to run repeatedly:
  Serial.print("Time: ");
  time=millis();
  Serial.println(time);

  a=bitRead(PORTD,7);
  b=bitRead(PORTD,2);

  do{
    more();
  }while(a==0);

  do{
    less();
  }while(b==1);
}
int t=1000;
长时间未签名;
int引脚;
int值;
INTA;
int b;
无效设置(){
//将安装代码放在此处,以便运行一次:

for(pin=2;pin
a=0
始终为假,
b=1
始终为真,因为它们进行赋值,并按赋值进行评估


使用
=
操作符比较数字。

我不确定你为什么要读取pin而不是让代码存储它们的状态。我也不确定你是否可以读取和写入一个pin,我假设该pin设置为输出模式。实际上,你的edit 2非常有意义。好的,我对所有这些都不熟悉,所以谢谢你的提示!@snoopenok我要去找我下面的答案把你原来的问题整理好了吗?如果是的话,那么接受这个答案,把你修改过的代码作为一个新问题重新发布。谢谢!我会修改这个数据的