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 - 极客工坊