delay软件延迟

//软件延迟ms级别、us级别、5us
#include <intrins.h>

void delay_us(unsigned char us)	//us级别延迟,最大输入255,us--1次用6.5us,进入1次函数需要11.95us
{
	while (us--);
}

void delay_ms(unsigned int ms)	//设置毫秒级别延迟函数,z最大输入65535
{
	unsigned char x;
	for (ms; ms > 0; ms--)
		for (x = 114; x > 0; x--);
}

void delay_5us(void)//一进一出,延迟5us时间
{
	_nop_();	
}

us级别的延迟,进入一次函数需要11.95us,这个我没有测试过,用的学习视频里面的。

ms级别的延迟,好像误差较大,也只能凑合用了,想要精确定时,只能用定时器了。

5us延迟,在后面的博客里会用到。

本代码用到了_nop_();函数,这个在intrins.h里面,是一个空执行,1次1个机器周期。

综上:这是一个很简单的软件延迟代码。

猜你喜欢

转载自blog.csdn.net/qq_44829055/article/details/107427703
今日推荐