找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 684|回复: 3
收起左侧

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

[复制链接]
ID:1001624 发表于 2022-1-18 14:40 | 显示全部楼层 |阅读模式

void DelayMS(uint ms)

{

         uchar t;

        while(ms--)

        {

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

        }

}




回复

使用道具 举报

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 单片机教程网

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