诶咦唉哦呦 发表于 2013-11-10 14:30:55

请各位帮忙看一下,关于setup 和 millis 函数的问题

问题参见代码中的注释,why always print 0?//run horse light 2013.11.10

byte 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;
}
}

万马奔腾 发表于 2013-11-10 19:48:03

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撒?

林定祥 发表于 2013-11-11 16:52:16

25行后,接下来是19行,应该等于0.不知道想干什么?

飞翔的红猪 发表于 2013-11-11 17:00:22

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();

}
}

kwleung 发表于 2013-11-27 21:52:36

millis() = ms++ =1/1000(s)
Serial.begin(9600); = 1 / 9600 (s)

Arduino send "0" to pc, less then 1ms,

所以 是 0
页: [1]
查看完整版本: 请各位帮忙看一下,关于setup 和 millis 函数的问题