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,這個程序就不通用了,第一個程序也便于理解
精確延時請用定時器 |