当前位置: 代码迷 >> 单片机 >> 关于单片机延时有关问题,如果不用计时器怎么能做到精确延时
  详细解决方案

关于单片机延时有关问题,如果不用计时器怎么能做到精确延时

热度:102   发布时间:2016-04-28 15:24:58.0
关于单片机延时问题,如果不用计时器如何能做到精确延时。
今天看霖锋的单片机视频,里面有个延时函数,晶振是12M
void delay(uint i)
{
   while(i--);
}

视频里说delay(80);大概延时600us,
但是我用keil模拟的时候算出来的时间不对

void main(void)
{
    uint i;
delay7us(80);......1
i=0;...............2


单步跟踪从1到2的时间是0.00038900--0.00112500,另个相减得到0.000736,单位是秒的话,哪岂不是延时是736ms,而不是微秒,我错在哪了吗?

还有能请教一下,for循环嵌套的延时函数应该怎么计算到底延时多少

------解决方案--------------------
C语言的延时可以实现的精度是指令级别的.


前提:
要熟悉了解你C语言编程成汇编的代码.(比如 ++ i,i ++ 的区别)
要熟悉你所有编译器的优化.
或者
直接追踪汇编代码.

  相关解决方案