2.微秒延时
晶振频率为8MHz时1μs延时函数:
void delay_1us(void)
{
asm("nop");
}
当然也可以使用宏定义来实现1μs延时:
#define delay_1us(); asm("nop");asm("nop");asm("nop");asm("nop");asm("nop");asm("nop");asm("nop");asm("nop")
如果小于1μs的延时,只有使用宏定义实现,当然,也可以直接插入在线汇编
asm("nop");
语句实现延时。
不明白函数写的只用一个 asm("nop");就达到1us的延时!而用宏定义却要用8个 asm("nop");?
|