打印

C中执行一个语句。时间怎么算?

[复制链接]
5148|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
ccjtv|  楼主 | 2010-11-13 10:26 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
void delay_10us(unsigned char y)///延时子程序10us
  {
    unsigned char x;
    for(x=y;x>0;x--); 这个X减一次是10US ?
  }
void delay_ms(uint z)//延时子程序1ms
  {
    uint x,y;
    for(x=z;x>0;x--)
      for(y=113;y>0;y--);这个Y减一次是?
  }
51单片机,12M晶振,新手请教:C中一个语句执行一下是多少时间,这个怎么算。谢谢!

相关帖子

沙发
wy3168| | 2010-11-13 10:37 | 只看该作者
反汇编看看几个语句,1个语句按1US算就可以了。

使用特权

评论回复
板凳
刘前辈| | 2010-11-13 11:41 | 只看该作者
machunshui 兄长的方法极受启发,如下:(当然需要有硬件实际运行)

void delay_10us(unsigned char y)///延时子程序10us
  {
    unsigned char x;
TMOD|=??;
TH0=TL0=0;
TR0=1;  //启动定时器;

    for(x=y;x>0;x--); 这个X减一次是10US ?

TR0=0; // 中止走时,观察走过的us数。
  }

使用特权

评论回复
地板
老鱼探戈| | 2010-11-13 13:06 | 只看该作者
也要看编译的优化程度了。

使用特权

评论回复
5
komad| | 2010-11-13 19:57 | 只看该作者
看编译后的汇编,用软件仿真看时间

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

34

主题

81

帖子

0

粉丝