void delay_ms(u16 ms)
{
u16 i,j;
for(i=ms;i>0;i--);
for(j=110;j>0;j--);
}
这个是软件延时,要根据MCU的时机器周期计算。
u16的范围是0~65535,若ms为1ms,则最大可延时0~65535ms。
void delay_ms(u16 ms)
{
while(us--);
}
这个程序也有错,两个参数ms,us。若us为1us,则最大可延时0~65535us。
延时时间大于66ms,这个程序就不通用了,第一个程序也便于理解
精确延时请用定时器 |