找回密码
 立即注册

QQ登录

只需一步,快速开始

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

那位大佬帮我看看这单片机延时程序DelayMS怎么理解?

[复制链接]
跳转到指定楼层
楼主
ID:1001624 发表于 2022-1-18 14:40 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

void DelayMS(uint ms)

{

         uchar t;

        while(ms--)

        {

                 for(t=0;t<120;t++);

        }

}




分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:311903 发表于 2022-1-18 16:37 | 只看该作者
ms * 120 个循环,啥都不干,干等时间来达到延时的目标,粗略延时,不精确
回复

使用道具 举报

板凳
ID:73435 发表于 2022-1-18 17:12 | 只看该作者
这种代码都是要结合硬件,结合单片机时钟来看的,而且不精确
回复

使用道具 举报

地板
ID:453974 发表于 2022-1-18 17:55 | 只看该作者
首先在主程序里面应该给MS赋一个值(DelayMS(500)),然后进入子程序后判断这个值是不是为零,如果不是,这个值进行一个自减,接着执行for循环,按照你的程序来说for里面执行的是空指令,大概一个机器周期(11.0592M大概一微秒),for循环将空指令执行120次大概就是120微秒,for执行完成后再对ms进行判断,依次再执行;;如果是就结束循环,跳出子函数;
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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