我吧函数原型给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中运行
下面是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时钟周期相关的。
就是用晶振频率算cpu指令周期,再算Delay循环中有几条代码,需要多少个指令周期。除一下可以算个大概。具体你可以结合硬件资料来算。但是用Delay函数来延迟不止和CPU指令周期有关,还和你是否使用了操作系统用了哪种操作系统有关。总之受影响的因素很多,做不到特别精确的。