c51简单delay函数,不同类型同值字符的延时时间
一、 简单delay函数(晶振频率 11.0592 MHZ)
#define uchar unsigned char
#define uint unsigned int
#define ulong unsigned longvoid 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与延时时长的关系。