一乐电子

 找回密码
 请使用微信账号登录和注册会员

QQ登录

只需一步,快速开始

微信扫码登录

手机号码,快捷登录

手机号码,快捷登录

搜索
查看: 2380|回复: 18

[其他综合] 求个可传递参数的延时函数

[复制链接]
发表于 2014-8-14 16:16 来自手机 | 显示全部楼层 |阅读模式
求个可传递参数的延时函数,C51,100us,16M晶振,多谢!
发表于 2014-8-14 16:55 | 显示全部楼层
现在网上的单片机助手一搜一大把,很简单计算出来、、、、、
回复

使用道具 举报

发表于 2014-8-14 17:00 | 显示全部楼层
本帖最后由 桃之夭夭 于 2014-8-14 17:04 编辑

void Delay_us(unsigned int times)
{
    unsigned int i;

        for (i=0; i<times; i++)
        {
                _nop_();        // 调用NOP,12M一个nop 1us吧,16M就是0.75us
        }
}

点评

在for上面的时间没计算......  发表于 2014-8-14 17:41
回复

使用道具 举报

 楼主| 发表于 2014-8-14 17:08 来自手机 | 显示全部楼层
zhixiaoyuhong 发表于 2014-8-14 16:55  现在网上的单片机助手一搜一大把,很简单计算出来、、、、、

没有找到可以生成有参数的延时函数的软件,都是固定时间的,
回复

使用道具 举报

 楼主| 发表于 2014-8-14 17:10 来自手机 | 显示全部楼层
桃之夭夭 发表于 2014-8-14 17:00  void Delay_us(unsigned int times)  {  unsigned int i;

for循环需要的时间也得加进去,难以计算
回复

使用道具 举报

发表于 2014-8-14 17:16 | 显示全部楼层
本帖最后由 桃之夭夭 于 2014-8-14 17:39 编辑
benli 发表于 2014-8-14 17:10
for循环需要的时间也得加进去,难以计算

自己算啊~延时ms,延时s,用timer看看~

一个for循环一个指令周期,一个nop一个指令周期,小学生也会算……………………子程序调用 xx us + 子程序返回 xx us自己度娘看看~赋值也要时间……没有那么精确地……



自己看这个吧,http://blog.csdn.net/da6679980/article/details/9421691  搜出来的~
回复

使用道具 举报

发表于 2014-8-14 17:18 | 显示全部楼层
void Delay_ms(unsigned int times)
{
    unsigned int i;
       
        for (i=0; i<times; i++)       
                Delay_us(1000);         // 调用延时函数,延时1ms               
}


void Delay_s(unsigned int times)
{
        unsigned int i;
       
        for (i=0; i<times; i++)
                Delay_ms(1000);           // 调用延时函数,延时1s
}
回复

使用道具 举报

发表于 2014-8-14 17:39 | 显示全部楼层
桃之夭夭 发表于 2014-8-14 17:16
自己算啊~延时ms,延时s,用timer看看~

一个for循环一个指令周期,一个nop一个指令周期,小学生也会算 ...

不一定的,这个要看是什么芯片和变量类型,但肯定不止一个周期
回复

使用道具 举报

发表于 2014-8-14 17:43 | 显示全部楼层
icewind 发表于 2014-8-14 17:39
不一定的,这个要看是什么芯片和变量类型,但肯定不止一个周期

是啊,编译器也有影响,自己测试一下不就知道了。我只是举例说一下,timer计时自己比较一下就知道了
回复

使用道具 举报

发表于 2014-8-14 18:49 | 显示全部楼层
桃之夭夭 发表于 2014-8-14 17:16
自己算啊~延时ms,延时s,用timer看看~

一个for循环一个指令周期,一个nop一个指令周期,小学生也会算 ...

一个for循环一个指令周期 肯定不止,最少4-5个周期前,你看看编译后的汇编代码就知道了
回复

使用道具 举报

本版积分规则

QQ|一淘宝店|手机版|商店|一乐电子 ( 粤ICP备09076165号 ) 公安备案粤公网安备 44522102000183号

GMT+8, 2025-10-31 12:28 , Processed in 0.031860 second(s), 28 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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