延时函数怎么写delay

1. c语言延时函数delay,怎么算延时 下面是delay 函延迟函数里执行的都是空语句,也就是说通过循环执行空语句来达到延迟的目的.每执行一条语句,即使是空语句都要耗费电脑一些处理时间的,就是因为这个,在延迟函数里写一些无关紧要的东西,用来浪费电脑处理时间,从而达到延迟目的 。数原型:
原型:
void Delay(unsigned int nDelay)
{
unsigned int i,j,k;
【延时函数怎么写delay】for ( i=0;i<nDelay;i++ )
for ( j=0;j<6144;j++ )
k++;
}
用法:#include <system.h>
功能:短暂延时
说明:延时msec*4毫秒所以,delay的延迟时间是和你的cpu时钟周期相关的 。
2. C语言delay的延时函数怎么写 回答这个问题前提需要搞清楚:
1.你的执行文件在那里运行?
2.你要延时是否“死等”,还是可以切换到其他任务?
-----------------------------------------------
如果你只是学习c语言,写个小函数玩玩,可以如下:
void delay(int time)
{
for(;time>0;time--)
{
nop;//可写任何无意义的操作
}
}
死等型的延时,时间根据指令执行速度不同而不同!!!!
3. delay() c语言延迟函数 1、delay函数是一般自己定义的一个延时函数 。
2、C语言定义延时函数主要通过无意义指令的执行来达到延时的目的 。下面给出一个经典的延时函数 。
// 定义一个延时xms毫秒的延时函数
void delay(unsigned int xms) // xms代表需要延时的毫秒数
{
unsigned int x,y;
for(x=xms;x>0;x--)
for(y=110;y>0;y--);
}
4. 单片机中用写delay函数做延时和用定时器做延时有什么区别 利用循环处理的方式实现的延时,并不精确 。
1、当中断发生时,CPU被打断先执行中断服务 。导致执行时间变长 。
2、使用高级语言时,编译的结果受优化等级等多方面因素干扰,难以计算 。
3、在有MMU和Cache的MCU中,指令的执行速度还会受到缓存的影响 。
利用定时器延时:
1、因为定时器累加与CPU无关,即使中断,仍然会保持计数 。不受上述问题影响
2、缺点需要占用定时器资源 。
3、功耗也会高一些
5. 这延时函数怎么理解void Delay1ms 与单片机的计算速度有关,主要看cpu频率
假如你的单片机cpu频率为8Mhz
则该单片机大约每秒进行8 000 000次的运算,
这个delay函数就是通过i,j,k的自减运算来达到延迟效果
一直减到ijk都为0才执行下一段函数
delay(10)就是让单片机进行 i(10) * j(10) * k(50)=5000次的自减运算,时间大约为5000/8 000 000=0.625ms
自己可以根据这个算法来简单测算出延迟时间
6. 请求单片机delay延时函数 void delay1(unsigned int j)
{unsigned char i;
do{for(i=0;i<2;i++);
j--;
asm("nop");}
while(j);
}
这是us延时,有误差,j的值越大相对误差越小 。不过相信误差应该在你的可接受范围内 。
void delay1(unsigned int j)
{unsigned int i;
do{for(i=0;i<2853;i++);
j--;}
while(j);
}
这是ms延时,有误差,j的值越大相对误差越小 。不过相信误差应该在你的可接受范围内 。
你可以试试,不行我再给你调
7. 怎么写段单片机延时函数 1、首先分析您的程序,
void delay()
{
int i;
if(1 == TF0)//if(TF0==1),查询定时器溢出标志位
{
TF0=0;
i=10000;//定时溢出时给i赋值1000
TH0=0xDC;TL0=0x00;
i--;//i=999,如果还没有减到0时定时器又溢出,则i永远不会减到0!!!!所以您的这段程序不应该行不通!!