找回密码
 立即注册

QQ登录

只需一步,快速开始

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

关于单片机延时时间计算问题

[复制链接]
跳转到指定楼层
楼主
ID:398162 发表于 2019-6-4 18:30 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
void Delay1ms(uint y)
{
    uint x;
    for( ; y>0; y--)
    {
        for(x=110; x>0; x--);
    }
}
这是一段延时1ms的程序,不懂这是怎么计算的,才1ms

像void delay(unsigned char i)
{
        while(i--);

}
这样来设定时间延时的话不是更方便嘛


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

使用道具 举报

沙发
ID:213173 发表于 2019-6-5 05:45 | 只看该作者
延时函数有多种写法,没有严格规定。楼主的第一种写法适合ms级延时,第二种写法适合us级延时。一般不需要精确计算。对于控制一些对时序要求比较高的外部器件,可以根据MCU时钟频率,用单片机助手之类的工具计算延时很方便。
回复

使用道具 举报

板凳
ID:123289 发表于 2019-6-5 08:29 | 只看该作者
在编译后,打开它生成的汇编格式程序,找到对应的延时部分,就可得看到这介看时命令执行了多少条机器码指令,而每条指令的执行时间是固定,这样你就可以计算出延时的总时间了。
前提是:你必须懂汇编语言。
如果你不懂汇编语言。就只能在调试中走单步,看工具中走这一步延时用多少时间。
回复

使用道具 举报

地板
ID:461604 发表于 2019-6-5 10:01 | 只看该作者
这样写延时函数不准确,如果需要精确延时,可用定时器实现啊,1ms,1us都可以准确实现。
回复

使用道具 举报

5#
ID:388197 发表于 2019-6-5 15:26 | 只看该作者
STC烧写软件里面就有个延时函数的生成器,用那玩意就行了.
回复

使用道具 举报

6#
ID:370231 发表于 2019-6-5 15:35 | 只看该作者
看看这个软件!!

单片机小精灵v1.3完美破解.rar

996.3 KB, 下载次数: 16

回复

使用道具 举报

7#
ID:549902 发表于 2019-6-5 16:57 | 只看该作者
规定语言
回复

使用道具 举报

8#
ID:93224 发表于 2019-6-5 17:34 | 只看该作者
有好多思路的
回复

使用道具 举报

9#
ID:398162 发表于 2019-6-7 18:55 | 只看该作者
a89588038 发表于 2019-6-5 15:35
看看这个软件!!

啊哈哈哈哈,这个我也有!!!
回复

使用道具 举报

10#
ID:398162 发表于 2019-6-7 18:56 | 只看该作者
yzwzfyz 发表于 2019-6-5 08:29
在编译后,打开它生成的汇编格式程序,找到对应的延时部分,就可得看到这介看时命令执行了多少条机器码指令 ...

大致了解,谢谢!!!
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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