完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
实验名称:不同频率闪烁一个LED
#include ***it LED0=P0^0; void Delay(unsigned int t); void main (void) { unsigned char i; while (1) { for(i=0;i<10;i++) { LED0=0; Delay(10000); LED0=1; Delay(10000); } for(i=0;i<10;i++) { LED0=0; Delay(60000); LED0=1; Delay(60000); } } } void Delay(unsigned int t) { while(--t); } 如果没有最后面那个whlile(——t)就不能正常运行,为什么?它的用途是? |
|
相关推荐
7个回答
|
|
while(--t);是一个空循环,函数Delay执行这个空循环来达到延时的效果。空循环的作用就是延时,让CPU运算一大堆无用的自减运算,从而达到延时的效果。
比如Delay(10000),执行减法10000次。delay(10000)里面的10000就是传给delay里的t 但是这个延时效果是不精确的,取决于计算机的运行速度。 如果不延时的话,LED的闪烁频率太快,肉眼根本无法分辨。 |
|
|
|
百度一下人眼的视觉暂留特性。要有延时,才可以!不过同时这个while(--t)可以有很多种方式延时的。你可以参考一下。for(i=0;i<220;i++){for(j=t;j>0;j--)}
|
|
|
|
delay();函数如果没有延迟,就一闪而过了,相当于没有发生
|
|
|
|
|
|
如果没有while(--t)就相当于没有延时
|
|
|
|
简单的说就是个一直判断while的真假来延时
|
|
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
【RA-Eco-RA2E1-48PIN-V1.0开发板试用】(第三篇)ADC采集+PWM输出
489 浏览 0 评论
《DNK210使用指南 -CanMV版 V1.0》第四十五章 人脸识别实验
498 浏览 0 评论
655 浏览 0 评论
如何用OpenCV的相机捕捉视频进行人脸检测--基于米尔NXP i.MX93开发板
1329 浏览 0 评论
《DNK210使用指南 -CanMV版 V1.0》第四十章 YOLO2人手检测实验
558 浏览 0 评论
【youyeetoo X1 windows 开发板体验】少儿AI智能STEAM积木平台
11753 浏览 31 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-20 18:22 , Processed in 0.655401 second(s), Total 86, Slave 69 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号