微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > MCU和单片机设计讨论 > 时延函数

时延函数

时间:10-02 整理:3721RD 点击:

单片机中,用C语言进行编程时,时延函数如下编写,似乎无法确切对应,假设晶振为8Mhz,问:(1)对应1微秒(us),方式一、方式二哪个更准确呢?
(2)1毫秒(ms)的书写方式‘M*143-2’能推算出到底是怎么推理得到的么?
期待高手详细指点,谢谢~!
方式一:
void Delay1us(int i)
{
  unsigned char j;
  for(;i-->0;)
  {
     for(j=5;j-->0;)
     {}
  }
}
方式二:
void delay_us(unsigned int time)
{
    unsigned int t;
    for(t=time;t>0;t--)
    {
        asm("nop");
        asm("nop");
    }
}

ms时延:
void delay_ms( )   
{
    uint i
         for(i=1;i<M*143-2;i++);  //M=8mhz,晶振频率
}

void delay0_5s()
{
        unsigned char i;
        for(i=0;i<0x0a;i++)
        {
                TH0=0x3c;
                TL0=0xb0;
                TR0=1;
                while(!TF0);
                TF0=0;
        }
}

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top