智能车制作

标题: delay()延时如何计算??? [打印本页]

作者: 舊日的足迹    时间: 2014-5-21 13:57
标题: delay()延时如何计算???
总线频率都为64M
(1)
void delay()
{
  unsigned int i;
  for(i=0;i<10;i++)
  {
    asm("nop");
  }
}
(2)
int delayms(int time)
{
  short x,y;
  for(x=0;x<4106;x++){
    for(y=time;y>0;y--){
    }
  }
}
(3)
void DelayMs(int time)
{
  uint x,y;
  for(x=time;x>0;x--)
      for(y=110;y>0;y--);
}
请问(1)的延时为多少?
如果(2)中的Y=10,(3)中的TIME=10,则延时分别为多少?算法一样吗?
希望能写出具体算法!
在线等,急!
非常感谢!
作者: chenqiang    时间: 2014-5-21 14:03
拿示波器看
作者: 舊日的足迹    时间: 2014-5-21 14:41
chenqiang 发表于 2014-5-21 14:03
拿示波器看

用过,但示波器精度不够 测不出来

作者: chenqiang    时间: 2014-5-21 14:45
。。。。。。我们的至少可以测到几微秒
作者: 舊日的足迹    时间: 2014-5-21 15:57
chenqiang 发表于 2014-5-21 14:45
。。。。。。我们的至少可以测到几微秒

能不能纯靠计算算出来啊???
作者: chenqiang    时间: 2014-5-21 18:02
舊日的足迹 发表于 2014-5-21 15:57
能不能纯靠计算算出来啊???

你可以在延时里面执行很多个asm“nop”,直到你的示波器能检测到为止,然后再除就好了。
作者: 舊日的足迹    时间: 2014-5-21 19:10
chenqiang 发表于 2014-5-21 18:02
你可以在延时里面执行很多个asm“nop”,直到你的示波器能检测到为止,然后再除就好了。

手边没有东西啊。。。。。能不能计算出来??

作者: chenqiang    时间: 2014-5-21 19:14
舊日的足迹 发表于 2014-5-21 19:10
手边没有东西啊。。。。。能不能计算出来??

这个应该不行吧。没示波器怎么准确的测时间?

作者: ↗仰┢┦望☆    时间: 2014-5-21 19:18
可以估算  但是转换汇编浪费的那段时间是误差     
作者: 神仙难救    时间: 2014-5-30 12:25
请用定时器
作者: 麦籽小立    时间: 2014-5-30 12:42
我们的可以测到纳秒
作者: andyxu    时间: 2014-5-30 12:46
想精确延时用定时器,感觉一般自己写的延时都是粗略的,用在不讲究精度的地方,我都懒得算,直接示波器;
作者: 蛋炒面    时间: 2014-5-31 06:04
用定时器测,能测个比较精确的。
作者: 爱双双    时间: 2014-9-2 11:23
(3)中延时是10毫秒   51 单片机里 确实是10毫秒
作者: 马杰    时间: 2015-3-10 18:19
请问你的问题解决了吗?
作者: 马杰    时间: 2015-3-10 18:20
我也想知道
我目前在写延时這快的东西好纠结




欢迎光临 智能车制作 (http://dns.znczz.com/) Powered by Discuz! X3.2