请各位帮忙看一下,关于setup 和 millis 函数的问题
问题参见代码中的注释,why always print 0?//run horse light 2013.11.10byte ledPin[] = {5,6,7,8,9,10,11,12};
int ledDelay = 65;
int ledDirection = 1;
int currentLed = 0;
unsigned long changeTime;
void setup(){
Serial.begin(9600);
for(int i = 0;i<8;i++){
pinMode(ledPin,OUTPUT);
}
changeTime = millis();
}
void loop(){
//Serial.println("hello");
int ival = millis()-changeTime;
Serial.println(ival);//why always print 0?
if((millis()-changeTime)>ledDelay){
Serial.println("hello");
changeLights();
}
changeTime = millis();
}
void changeLights(){
for(int i = 0;i < 8;i++){
digitalWrite(ledPin,LOW);
}
digitalWrite(currentLed,HIGH);
currentLed += ledDirection;
if(currentLed == 9){
ledDirection = -1;
}
if(currentLed == 0){
ledDirection = 1;
}
} 17.void loop(){
18.//Serial.println("hello");
19.int ival = millis()-changeTime;
20.Serial.println(ival);//why always print 0?
21.if((millis()-changeTime)>ledDelay){
22. Serial.println("hello");
23. changeLights();
24. changeTime = millis();}
25.
26.}
照你的程序,肯定是0撒? 25行后,接下来是19行,应该等于0.不知道想干什么? void loop(){
//Serial.println("hello");
int ival = millis()-changeTime;
Serial.println(ival);//why always print 0?
if((millis()-changeTime)>ledDelay){
changeTime = millis();
Serial.println("hello");
changeLights();
}
} millis() = ms++ =1/1000(s)
Serial.begin(9600); = 1 / 9600 (s)
Arduino send "0" to pc, less then 1ms,
所以 是 0
页:
[1]