📄 delay_7.37m._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 + -