搜索
bottom↓
回复: 7

如何计算延时函数时间?

[复制链接]

出0入0汤圆

发表于 2010-9-28 23:09:42 | 显示全部楼层 |阅读模式
外部4M晶振
void delay()
{
  unsigned int k;
  for(k=0;k<6000;k++);
}
是多长时间?

阿莫论坛20周年了!感谢大家的支持与爱护!!

一只鸟敢站在脆弱的枝条上歇脚,它依仗的不是枝条不会断,而是自己有翅膀,会飞。

出0入0汤圆

发表于 2010-9-28 23:47:45 | 显示全部楼层
"是多长时间?"

from none to about 18ms.

出0入0汤圆

发表于 2010-10-2 15:32:49 | 显示全部楼层
你可以用mplab仿真一下啊!

出0入0汤圆

发表于 2010-10-7 22:43:23 | 显示全部楼层
编译之后看汇编代码。你就明白了

出0入12汤圆

发表于 2010-10-8 12:51:15 | 显示全部楼层
mplab 里面用 mplab sim,然后用 stopwatch 计算

出0入0汤圆

发表于 2010-10-9 11:34:13 | 显示全部楼层
这是要根据单片机的资料来的,比如PIC4620的4个时钟周期执行一条语句。

出0入0汤圆

发表于 2010-10-12 17:35:10 | 显示全部楼层
4楼说的很好,这样比较直观。
但是自己计算的话,用的是4M的晶振,执行一条单周期指令所需要的时间为0.25us,然后就算下一次for循环要执行几个周期的指令,最后就可以得出结果了。
望讨论。

出0入0汤圆

发表于 2010-10-12 20:09:04 | 显示全部楼层
; ....................................................................................................
; ★1ms基准延时,倍增调用。                                 (041024建立)(090901更新)(100926更新)

dly_1ms:                    ; 单次调用入口,倍数置1,包括调用和返回 1ms + 1us。
        movlw    .1
dlyx1ms:                    ; 倍增调用入口,倍数已在W,包括调用和返回 1ms x DELAY_T。
        movwf    DELAY_T
        goto     to_5us
loop1ms:                    ; 每个循环 1ms。
        nop
        nop
        nop
        nop
        nop
        nop
to_5us:
        movlw    d'198'
        movwf    TEMP1
loop990:
        nop
        nop
        decfsz   TEMP1,1
        goto     loop990
        decfsz   DELAY_T,1
        goto     loop1ms
        return

; loop_1ms循环                           [8 +(2+1+2)x198 -1 +3]                = 1000us
; dly_1ms 单次调用入口          -6 +2+4 +[8 +(2+1+2)x198 -1 +3]x DELAY_T -1 +2 = 1000us x DELAY_T + 1us
; dlyx1ms 倍增调用入口          -6 +2+3 +[8 +(2+1+2)x198 -1 +3]x DELAY_T -1 +2 = 1000us x DELAY_T
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-5-30 18:15

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

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