找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1772|回复: 6
打印 上一主题 下一主题
收起左侧

单片机LED灯闪烁程序问题

[复制链接]
跳转到指定楼层
楼主
我把while(i--)改为while(i++),然后随意更改delay()中的数字,LED灯闪烁频率不变。为什么会这样?

51hei图片_20201109212323.png (19.52 KB, 下载次数: 33)

51hei图片_20201109212323.png
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:405193 发表于 2020-11-9 22:17 | 只看该作者
没有这样写的,一般delay 都是小数值,并且100000已经超出U16的范围了,大数值延时需要定时器来做。
回复

使用道具 举报

板凳
ID:391087 发表于 2020-11-9 22:51 | 只看该作者
U16最大值是65535,你可以软件仿真调试一下,里面有个sec时间可以知道延时时间对不对
回复

使用道具 举报

地板
ID:654028 发表于 2020-11-10 09:31 | 只看该作者
你i++最终会超过i的最大值,然后就会变成0,然后就退出了死循环。但是基本上不会这样写,不好计算
回复

使用道具 举报

5#
ID:841510 发表于 2020-11-10 14:16 | 只看该作者
感觉可以通过for来控制频率
回复

使用道具 举报

6#
ID:339654 发表于 2020-11-11 16:57 | 只看该作者
编写程序要考虑变量类型的范围,不然程序编译通过却运行出错
回复

使用道具 举报

7#
ID:838395 发表于 2020-11-12 11:56 | 只看该作者
别用while用delay函数来控制
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

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