我想讓自己的延遲功能。簡而言之,mydelay
函數每secs
秒調用toggled
函數。代碼寫得不好,我知道(這是第一個版本)。但我只是想讓它正常工作。然後我會重構它。但我有一些意想不到的錯誤。第一次在x
函數循環中工作正常。它打印「我在同一時間」1秒鐘,然後打印「即將結束mydelay」,這是我想要的行爲。但在完成循環後在x
。第二次循環時。它進入mydelay
函數(沒關係)。但是,它不是在印刷「我在同一時間」。它只是打印「Im ending mydelay」,這是不好的。Arduino創建延遲功能
下面是代碼:
#include <Arduino.h>
int led = 7;
void setup() {
Serial.begin(9600);
pinMode(led, OUTPUT);
}
void loop() {
x();
Serial.println("Im ending main loop");
}
void x() {
for (int i = 0; i <= 10; i++) {
mydelay(led, 0, 1);
mydelay(led, 1, 1);
}
}
void mydelay(int pin, int hol, int secs) {
int starttime = millis();
while ((millis() - starttime) <= (secs * 1000)) Serial.println("I am in while");
toggled(pin, hol);
Serial.println("Im ending mydelay");
}
void toggled(int pin, int hol) {
digitalWrite(led, hol);
}
我認爲這個問題可能與** **米利斯,將回頭率毫秒,因爲Arduino的開始程序,我想最終米里斯,開始時間將比秒* 1000 – Josh