QQ群问题总结:每日一帖

A问:

int led01=13;

float ld=0.001;

void setup (){



pinMode(led01,OUTPUT);

}

void loop(){

int a=1;

while(a<1000){

digitalWrite(led01,HIGH);

delay(ld);

ld=ld+0.001;

a=a+1;

digitalWrite(led01,LOW);

delay(10);

}

}

有何错误?



答:delay的参数要求是无符号长整形.float -> unsigned long就是会强制丢掉小数。所以你前999次循环,都是delay(0).

delay(ld);这个可以用__delay_ms(ld); 即可解决,支持浮点不过最好ld写成常数,否则很占空间.

参考地址: http://www.arduino.cc/en/Reference/delay
via - 极客工坊

标签: Arduino教程