我想让自己的延迟功能。简而言之,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