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

我吧函数原型给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中运行
最新回答
别碰我!我有刺

2026-10-24 14:28:36

下面是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时钟周期相关的。
迷失了就不酷了

2026-06-11 16:01:21

就是用
晶振
频率算cpu指令周期,再算Delay循环中有几条代码,需要多少个指令周期。除一下可以算个大概。具体你可以结合硬件资料来算。

但是用Delay函数来延迟不止和CPU指令周期有关,还和你是否使用了操作系统用了哪种操作系统有关。总之受影响的因素很多,做不到特别精确的。
荆棘里旳花ゝ

2026-08-18 06:14:19

C语言是高级语言,可以运行在不同的硬件系统、及操作系统之下。

它的运行时间,没有固定的公式,只能在系统中运行,测试出结果。
深蓝菇凉

2026-07-07 14:36:17

两个for循环嵌套 执行k++;
计算机运算需要一定的时间,循环的次数越多消耗的时间越多。
但具体的时间不一定的,每台电脑的性能不一样,运行速度也不同的。
话不投机半句多-

2026-08-31 16:35:57

每条指令执行都需一定的时间(具体多少可查芯片手册),假如 nDelay=1024的话,则这段程序要执行到nDelay=0才退出FOR循环,这段用去的时间,就相当于延时了