头像-37360

不懂我就问

  • 山东省潍坊市
  • 单片机 嵌入式
  • 医疗电子

个人成就

获得 0 次赞

帮助过0人

这两个延时语句有什么区别?

第一个: dlynum=100; while((sgn==0)&&(dlynum>0)) { dlynum--; DelayMs(1);   //一个延时0.14ms的子函数 } 第二个: dlynum=1000; while((sgn==0)&&(dlynum--)); 目的是当sgn==0一直不变的话,超过10ms以上便跳出while语句,防止程序卡死。第一个是别人写的,可用,而且延时的效果就是0.14ms*100;第二个是我自己写的,在keil调试的时候运行完这段需要12ms,可是运行在单片机里却没有延时作用,我调试的时候晶振频率已经改成开发板的晶振了。。。 现在我很不理解啊,第一个在执行while等语句的时候难道不耗时间吗?如果说while等语句执行的时间很少,可以忽略,那为什么第二个在调试的时候sec长达12ms?望高人指点