骷髅 发表于 2012-9-5 19:19:40

用PWM控制灯程序,想让它一直常亮,除了用delay()。还有别的方法吗?

用PWM控制灯程序,想让它一直常亮,除了用delay()。还有别的方法吗?
void setup()
{pinMode(11,OUTPUT);
}
void loop()
{
for(int a=0;a<=255;a++)
{
    analogWrite(11,a);
    delay(8);
}
delay(1000);除了用delay还可以用别的方法让他输出的值是最大值就停止
}

这样
int a;
void setup()
{pinMode(11,OUTPUT);
}
void loop()
{
for( a=0;a<=255;a++)
{
    analogWrite(11,a);
    delay(8);
    if(a==255)
    {
      a=255;
      break;
    }
}
}
为什么这样不行呢 想法很低级,刚刚学习,求指导。。。。。。。

davidce 发表于 2012-9-5 19:30:10

不明白你的意思

绿林网页 发表于 2012-9-5 19:38:32

本帖最后由 绿林网页 于 2012-9-5 19:39 编辑

loop是无限循环,你的break只是跳出for循环,是无法终止loop的,具体终止方法我也在不知道呢!一般是设置一个条件,不满足条件就不执行语句,但loop是始终会执行的int t=0;
void loop()
{
    if(t==0)
   {
       for( a=0;a<=255;a++)
      {
          analogWrite(11,a);
          delay(8);
       }
      t=1;
   }
}这样应该能满足你

骷髅 发表于 2012-9-5 19:43:10

绿林网页 发表于 2012-9-5 19:38 static/image/common/back.gif
loop是无限循环,你的break只是跳出for循环,是无法终止loop的,具体终止方法我也在不知道呢!一般是设置一 ...

哦,明白了,谢谢

Randy 发表于 2012-9-6 09:21:22

2楼说的对,要想软件控制灯一直亮,可以使用死循环的函数来控制即可!

飞翔的红猪 发表于 2012-9-6 10:13:27

你把那段循环程序放在setup()里

骷髅 发表于 2012-9-6 19:17:41

再有个小问题,该如何把问题关掉呢,到现在都是未解决:funk:

骷髅 发表于 2012-9-6 20:11:50

飞翔的红猪 发表于 2012-9-6 10:13 static/image/common/back.gif
你把那段循环程序放在setup()里

好像不行

飞翔的红猪 发表于 2012-9-6 20:28:06

骷髅 发表于 2012-9-6 20:11 static/image/common/back.gif
好像不行

好像可以~~~

飞翔的红猪 发表于 2012-9-6 20:29:38

或者这样
void setup()
{
pinMode(11,OUTPUT);

}
void loop()
{
for(int a=0;a<=255;a++)
{
    analogWrite(11,a);
    delay(8);
}
for(;;);
}

骷髅 发表于 2012-9-7 16:37:02

这样到时可以,但是小弟愚昧,求解释
第二个for(;;);怎么理解?

麽麽茶㊣ 发表于 2012-9-19 13:21:41

飞翔的红猪 发表于 2012-9-6 20:29 static/image/common/back.gif
或者这样
void setup()
{


for(;;) 。。。。
页: [1]
查看完整版本: 用PWM控制灯程序,想让它一直常亮,除了用delay()。还有别的方法吗?