//软件延迟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个机器周期。
综上:这是一个很简单的软件延迟代码。