c语言延时函数delay,怎么算延时??

我吧函数原型给copy过来。voidDelay(unsignedintnDelay){unsignedinti,j,k;for(i=0;i<nDelay;i++)for(... 我吧函数原型给copy过来。
void Delay(unsigned int nDelay)
{
unsigned int i,j,k;

for ( i=0;i<nDelay;i++ )
for ( j=0;j<6144;j++ )
k++;
}
假如 nDelay=1024的话,晶振(时钟频率)为600MHz,希望大家能够讲详细点, 好了我在追分
在DM642中运行
展开
 我来答
云云说教育
2018-06-25 · 教育领域爱好者
云云说教育
采纳数:630 获赞数:403514

向TA提问 私信TA
展开全部
下面是delay 函延迟函数里执行的都是空语句,也就是说通过循环执行空语句来达到延迟的目的.每执行一条语句,即使是空语句都要耗费电脑一些处理时间的,就是因为这个,在延迟函数里写一些无关紧要的东西,用来浪费电脑处理时间,从而达到延迟目的。数原型:

原型:
void Delay(unsigned int nDelay)
{
unsigned int i,j,k;
for ( i=0;i<nDelay;i++ )
for ( j=0;j<6144;j++ )
k++;
}
用法:#include <system.h>
功能:短暂延时
说明:延时msec*4毫秒所以,delay的延迟时间是和你的cpu时钟周期相关的。
百度网友64c9ca5
推荐于2018-04-13 · TA获得超过231个赞
知道答主
回答量:51
采纳率:0%
帮助的人:40.2万
展开全部
就是用晶振频率算cpu指令周期,再算Delay循环中有几条代码,需要多少个指令周期。除一下可以算个大概。具体你可以结合硬件资料来算。

但是用Delay函数来延迟不止和CPU指令周期有关,还和你是否使用了操作系统用了哪种操作系统有关。总之受影响的因素很多,做不到特别精确的。
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
做而论道
高能答主

2010-09-16 · 把复杂的事情简单说给你听
知道大有可为答主
回答量:3万
采纳率:80%
帮助的人:1.1亿
展开全部
C语言是高级语言,可以运行在不同的硬件系统、及操作系统之下。

它的运行时间,没有固定的公式,只能在系统中运行,测试出结果。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友b692f97
2010-09-16 · TA获得超过688个赞
知道小有建树答主
回答量:458
采纳率:0%
帮助的人:237万
展开全部
两个for循环嵌套 执行k++;
计算机运算需要一定的时间,循环的次数越多消耗的时间越多。
但具体的时间不一定的,每台电脑的性能不一样,运行速度也不同的。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
comm2010
2010-09-16 · TA获得超过130个赞
知道小有建树答主
回答量:222
采纳率:0%
帮助的人:102万
展开全部
每条指令执行都需一定的时间(具体多少可查芯片手册),假如 nDelay=1024的话,则这段程序要执行到nDelay=0才退出FOR循环,这段用去的时间,就相当于延时了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式