我正在编写一个基本程序,需要20毫秒,并控制主板上的小灯的开启和关闭。 但它总是向我显示一个错误 有人可以帮我解决一下吗?
void setup() {
pinMode(13, OUTPUT);
}
int cycle = 1;
int time_t=20;
int time_on = 0;
int time_off= (time_t-time_on);
int big=0.05;
while (cycle<=100) {
if (cycle%10==0) {
time_on=time_t*big;
time_off= time_t-time_on;
big=big+0.05;
}
digitalWrite(13, HIGH);
delay(time_on);
digitalWrite(13, LOW);
delay(time_off));
cycle++;
}
答案 0 :(得分:3)
arduino程序语法指定程序由两个函数setup()
和loop()
组成。因此,必须一次又一次地重复的部分必须写在循环函数内。所以你的代码将进入一个名为loop
的void函数。它变成了:
void loop(){
while (cycle<=100) {
if (cycle%10==0) {
time_on=time_t*big;
time_off= time_t-time_on;
big=big+0.05;
}
digitalWrite(13, HIGH);
delay(time_on);
digitalWrite(13, LOW);
delay(time_off));
cycle++;
}
Arduino参考: http://arduino.cc/en/Reference/Loop
答案 1 :(得分:0)
我还没有使用过这种语言,但我发现&#34; int big = 0.05;&#34;您正尝试将浮点值分配给整数。它应该是double,float还是类似的数据类型?然后在while循环中你有
time_on=time_t * big;
再次尝试将整数与浮点值相乘并将其分配回整数。结果是time_on的值将是time_t倍大的圆形版本。 time_on的值只会随着大方法的值或等于1而改变。而大的值总是等于0.你需要将big和time_on变量更改为浮点数据类型。