|
发表于 2017-9-27 09:42:59
|
显示全部楼层
单片机常常会用到延时功能,比较常见的延时办法是使用定时器和延时函数。一般超过秒的延时就要考虑使用定时器了,因为使用延时函数会大大降低CPU的使用效率,程序需要一直在延时函数里面运行。而使用定时器开启中断,CPU可以在中断没触发时做其他的事情。
使用延时函数做延时确实和单片机的工作频率有密切关系,只是当工作频率选择差别不大时,延时时间又比较短,可能不容易分辨。
一般使用延时函数延时时间较长时,会使用3个变量,函数固定格式是:
void delay500ms()
{
unsigned char i,j,k;
for(i=41;i>0;i--) // 没分号
for(j=133;j>0;j--) // 没分号
for(k=252;k>0;k--); // 有分号
}
使用延时函数延时时间比较短时,只使用一个变量,函数固定格式是:
void delay (unsigned char t)
{
while(--t);
}
注:深入理解for和while的使用,两者可以相互转换使用。
|
|