void delay_n_ms(uchar num)
{
uchar time;
while(num)
{
time = 250; // fosc = 11.0592MHz CLK_DIV = 0;
while(time) time --;
num --;
}
}
這個函數的周期是1ms嗎?為什麼?求大神詳解!
你用這種循環是得不到精確的延時時間的,要想得到精確的1ms還的配置定時器來定時。
另外,你的這個函數周期是不是1ms我沒有算,但是這是和你單片機的指令運行周期有關,即對於一個while指令,其指令周期並不是1,而是和單片機本身有關的。
如果你想做一個大致的延時函數,去查一下while指令在單片機中的指令周期,然後再計算一下。