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

[复制链接]
6200|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 | 显示全部楼层
也要看编译的优化程度了。
komad 发表于 2010-11-13 19:57 | 显示全部楼层
看编译后的汇编,用软件仿真看时间
您需要登录后才可以回帖 登录 | 注册

本版积分规则

34

主题

81

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部