请问一个Millis问题,Mills取代Delay而当掉的问题。
如果您愿意可以帮我测试一下vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv
int currentMillis;
int i=0;
int interval = 3000;
void setup() {
Serial.begin(9600);
}
void loop() {
Serial.println("CCCC");
int startMillis = millis();
for(int currentMillis = 1;currentMillis - startMillis < interval;)
{currentMillis=millis();}
Serial.println(i);
i++;
}
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
我写的这个式子很奇怪
若 int interval = 1000;跳到30次之后 就...狂跳。
若 int interval = 2000;跳到15次之后 就...狂跳。
若 int interval = 3000;跳到10次之后 就...狂跳。
若 int interval = 15000;跳到2次之后 就...狂跳。
若 int interval = 30000;就不会狂跳了。
我该怎么解决?? 让interval 不会狂跳...
请各位给个指引~~谢谢~~ 注意类型匹配unsigned long currentMillis;
int i=0;
int interval = 3000;
void setup() {
Serial.begin(9600);
}
void loop() {
Serial.println("CCCC");
unsigned long startMillis = millis();
for(currentMillis = millis();startMillis + interval > currentMillis;)
{currentMillis=millis();}
Serial.println(i);
i++;
} 簡單一點也可以:unsigned long end_time = millis() + interval ;
while (millis() < end_time); 聪明~~十分感谢.....谢谢各位....太感激啦~~
页:
[1]