用系统自带的函数:
void usleep(int us); //微秒级
void ets_delay_us(uint32_t us);//微秒级
用系统寄存器计算:[可实现纳秒级延时]
static __inline void delay_clock(int ts)
{
uint32_t start, curr;
__asm__ __volatile__("rsr %0, ccount" : "=r"(start));
do
{
__asm__ __volatile__("rsr %0, ccount" : "=r"(curr));
}while (curr - start <= ts);
}
void udelay(int us)
{
while (us--)
{
delay_clock(160);//CPU_Freq=160MHz
}
}
void mdelay(int ms)
{
while (ms--)
{
delay_clock(160*1000);//CPU_Freq=160MHz
}
}