在单片机中,通常需要延时函数,经常用到_nop_()函数,NOP指令是单片机指令中的空操作,常用于延时子程序,如果要求比较精确的延时,对循环次数作微调,以得到更加精确的较长时间的延时。12MHz晶振的机器周期为1us。在机器周期为1us的情况下,用法为你要延时几秒,就需要你需要延时的微秒数减去4us得到的需要的nop的个数。因为调用函数需要消耗一个指令周期,该指令消耗2个周期(2us),函数执行完毕之后需要返回主函数,需要一个返回指令,该指令消耗2个周期(2us)。
用_nop_()函数前,要加个头文件#include "intrins.h"