1
編輯︰我得到程序來完成循環,現在它只是它在完成循環之前給了我一堆0 - 所以這裏是我的代碼的更新版本。Arduino在完成循環之前停留了一段時間
試圖創建一個程序,先打開一個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);
}
我不確定你爲什麼要讀取這些引腳而不是讓代碼存儲它們的狀態。我也不確定你可以讀寫一個我認爲設置爲輸出模式的引腳。 – snoopen
其實你編輯2是非常有意義的。 http://stackoverflow.com/questions/6160963/how-can-i-digitalread-a-pin-that-is-in-pinmode-output – snoopen
好吧,我對這一切都很陌生,所以感謝提示! @snoopen – enirt