⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 delay_7.37m._c

📁 网卡驱动程序
💻 _C
字号:
#include <macros.h>
#include "Delay_7.37M.h"

/*-----------------------------------------------------------------------
延时函数
系统时钟:7.3728M
-----------------------------------------------------------------------*/
void Delay_1us(void)     //1us+
{
   asm("nop");
}

void Delay_nus(unsigned int n)       //N us延时函数
{
   unsigned int i=0;
   while (n--)
      Delay_1us();
   
}  

//通过int型计数的N us延时函数
//延时计算:t_delay = 6 * nt + 14t
//延时范围:n>=0, n<=65535 (即14t - 393224t )  //8M时,是1.5us - 49153us
void Delay_nus_Count(unsigned int n)    //0.75us+
{ 
   while(n) 
      n--;    
} 


void Delay_1ms(void)                 //1ms延时函数
{
   unsigned int i;
   for (i=0;i<1052;i++); 
}
  
void Delay_nms(unsigned int n)       //N ms延时函数
{
   unsigned int i=0;
   for (i=0;i<n;i++)
   Delay_1ms();
}

//精确1ms延时函数
//延时时间计算: t_delay= 3t + 1t + 1t + n*6t + ( (int(n/256) + 1) * 2t -1t) + 4t
//即: t_delay= n*6t + int(n/128)t + 10t 
//计数计算(1ms):n= (1000 * f - 10) * 128 / 769 
//              n= (1000 * 8 -10 ) * 128 /769 = 1329.93 (取整为n=1330, 再把1330去验证延时时间t_delay的计算)
void Delay_1ms_Preci(void)                 
{
   unsigned int i;
   i=1226;  //7.3728M
   while (i--) 
      ;
}

//N ms精确延时函数
void Delay_nms_Preci(unsigned int n)       
{
   unsigned int i=0;
   for (i=0;i<n;i++)
   Delay_1ms_Preci();
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -