c51簡單delay函式,不同型別同值字元的延時時間不同
阿新 • • 發佈:2021-02-18
c51簡單delay函式,不同型別同值字元的延時時間
一、 簡單delay函式(晶振頻率 11.0592 MHZ)
#define uchar unsigned char
#define uint unsigned int
#define ulong unsigned long
void Delay(uchar i)
{
while(i--);
}
在學習c51單片的過程中,應用簡單的delay函式,我發現給i定義成不同型別字元但賦相同值時,延時的時間相差較大
二、除錯計算時長
1· uchar
void Delay(uchar i)
{
while (i--);
}
計算可得 uchar i=200 實際延時時間是 0.00131402 s
2· uint
void Delay(uint i)
{
while(i--);
}
計算可得 uint i=200 實際延時時間是 0.00197048 s
3· ulong
void Delay(ulong i)
{
while(i--);
}
計算可得 uint i=200 實際延時時間是 0.00874132 s
三、比較總結
- 同值情況下,long型別延時最長,大概是int型別的5倍,char型別的6倍。
- 在應用簡單的delay函式時,一定要根據需要delay的時長選擇合適的字元型別。
- i的值跟延時的時間呈線性關係[點此跳轉證明],因此可以輕易計算出不同型別下,i與延時時長的關係。