amobbs.com 阿莫电子论坛

 找回密码
 注册
搜索
bottom↓
回复: 4

STC15W4K48S4延时函数测试

[复制链接]
(5475897)

打赏出0元收入0元

发表于 2020-5-5 17:31:36 | 显示全部楼层 |阅读模式
闲着无聊,测试了一下STC15W4K48S4延时函数,大家批评指正
void delay(datatype tt)
{
        while(tt--);
}
        while(1)        
        {       
               
                Test=~Test;
                delay(tt);

}
1、STC15W4K48S4,时钟11.0592MHz,配合示波器测试方波周期,从而去判断延时函数长短
2、不加任何延时,循环判断和IO翻转本身消耗的时间约为0.54uS,记为T1,以下所提时间均已减掉T1
3、使用_nop_();做延时,非常准确,每个_nop_();约0.09uS,应该就是1/11.0592MHz的时间
4、void delay(datatype tt)函数中datatype为unsigned int类型时,进出delay函数本身需要时间约2.63uS,tt每增加1增加延时约1.34uS
5、void delay(datatype tt)函数中datatype为unsigned char类型时,进出delay函数本身需要时间约1.68uS,tt每增加1增加延时约0.9uS
(5475047)

打赏出0元收入0元

发表于 2020-5-5 17:45:46 | 显示全部楼层
建议楼主用12MHz测试更直观
(5471010)

打赏出0元收入0元

 楼主| 发表于 2020-5-5 18:53:03 来自手机 | 显示全部楼层
饭桶 发表于 2020-5-5 17:45
建议楼主用12MHz测试更直观

系统中使用到串口,就用这个频率了,也是STC ISP默认的频率,省得每次调整
(4983406)

打赏出0元收入0元

发表于 2020-5-11 10:19:47 | 显示全部楼层
楼主可以看一下反汇编,看延时循环用了几条汇编指令,把指令周期加起来就知道了。
(4900284)

打赏出0元收入0元

 楼主| 发表于 2020-5-12 09:25:09 | 显示全部楼层
小李非刀 发表于 2020-5-11 10:19
楼主可以看一下反汇编,看延时循环用了几条汇编指令,把指令周期加起来就知道了。 ...

不用汇编好多年;看汇编指令然后对比指令表比传统51快了多少倍,去算时间,这事情是做不了了;用变量减做延时基本就是用在不需要多精确延时的地方,这样测测够用了
回帖提示: 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子论坛 ( 公安交互式论坛备案:44190002001997 粤ICP备09047143号-1 )

GMT+8, 2020-7-8 02:36

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

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