新手搞了一个小LED程序让大家看看-Arduino中文社区 - Powered by Discuz!

Arduino中文社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

12
返回列表 发新帖
楼主: 令狐逆天

新手搞了一个小LED程序让大家看看

[复制链接]
发表于 2012-11-7 14:31 | 显示全部楼层
while目的是为了不要再按下的时候不停地变灯,而是“按一下,变一个灯”;我放在后面的作用是按下就亮灯,而不是“松手”才亮灯。
发表于 2012-11-7 17:01 | 显示全部楼层
下面这条语句也很好!真的是简洁版。呵呵!
while ( p++ < 5 )
     pinMode(ledPin[p-1],OUTPUT);
发表于 2012-11-7 18:28 | 显示全部楼层
炼心斋 发表于 2012-11-7 08:34
我来解释一下空循环语句。
在按键按下后、未松开之前,cpu执行空循环语句,不执行后续的语句。只有在按键 ...

说的很明白。 又长知识了。偶是电子门外汉,谢谢了。
发表于 2012-11-7 18:42 | 显示全部楼层
补充说明一下上面提到的while循环语句。或者说是更正吧!
刚才翻开一本书,正好讲到这个语句。我觉得这个解释比较靠谱。摘录如下(为了适应对该“一键控五灯”程序的说明,做了适当修改):
“该while语句是为了等待按键放开而设计的,在按键按下后执行了一些程序,然后走到while语句这里判断按键的状态,如果为高,则说明按键没有放开,继续循环判断,如果为低,则说明按键放开了,可以进行其他工作了。...要是没有按键放开的判断,程序会始终执行按键程序,你按一次键却相当于按了许多次。这种按键的循环是失控的,所以我们用while语句的循环判断一次按键的放开,按键操作才会更分明。”

实验证明,的确如此。看来和去抖没什么关系。
发表于 2012-11-7 22:37 | 显示全部楼层
给STC平反一下。由于程序编写有误,导致在STC单片机上无法运行之前提到的while循环语句。改正之后,发现,该while循环语句在STC单片机上也是可行的。偏见害死人啊!抱歉!STC
发表于 2012-11-8 17:36 | 显示全部楼层
呵呵,setup()函数里面最后少写个p=4,否则第一次按钮从第三个灯开始亮(下标2),有些别扭。
发表于 2012-11-8 19:28 | 显示全部楼层
给大家出个题,继续以上的程序,五个灯轮流亮以后,全灭,全亮,再轮流亮。周而复始。挑战一下!
 楼主| 发表于 2012-11-9 15:58 | 显示全部楼层
我可算是知道什么是抛砖引玉了,真是神一般的操作呀。现在高温湿度出了点问题,暂时不能搞这个了,有时间一定的好好学习学习
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|Archiver|手机版|Arduino中文社区

GMT+8, 2024-12-27 07:27 , Processed in 0.077418 second(s), 14 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表