扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
回答这个问题前提需要搞清楚:
十余年专注成都网站制作,成都定制网页设计,个人网站制作服务,为大家分享网站制作知识、方案,网站设计流程、步骤,成功服务上千家企业。为您提供网站建设,网站制作,网页设计及定制高端网站建设服务,专注于成都定制网页设计,高端网页制作,对混凝土泵车等多个行业,拥有丰富建站经验。
1.你的执行文件在那里运行?
2.你要延时是否“死等”,还是可以切换到其他任务?
-----------------------------------------------
如果你只是学习c语言,写个小函数玩玩,可以如下:
void delay(int time)
{
for(;time0;time--)
{
nop;//可写任何无意义的操作
}
}
死等型的延时,时间根据指令执行速度不同而不同!!!!
1)首先要知道你用的是什么C语言?
2)其次要知道你的编程环境:是在DOS下编程?还是在Windows下编程?还是为嵌入式系统编程?
3)第三步才是找对应的C语言环境下有没有延时函数?
4)如果是单线程程序,没有可用函数库,就编个循环,在开始时去取系统时间(时间以毫秒表示),然后在每次循环中取当前时间,如果前后时间差达到1秒,则退出循环,这个精度一般不高。
如果更准确一点,通过时间中断器,在时间达到1秒后产生中断,这个方法精度好一些。
C语言的延迟函数一般是利用无意义程序运行来控制时间从而达到延时的目的
举个例子:
for(i=0;ix;i++)
for(j=0;j120;j++);
这是延时x毫秒的for循环语句。
值得注意的是记得最后的;一定得记得写。
下面是delay
函数原型:
原型:
void
Delay(unsigned
int
nDelay)
{
unsigned
int
i,j,k;
for
(
i=0;inDelay;i++
)
for
(
j=0;j6144;j++
)
k++;
}
用法:#include
system.h
功能:短暂延时
说明:延时msec*4毫秒所以,delay的延迟时间是和你的cpu时钟周期相关的
C程序中可使用不同类型的变量来进行延时设计。经实验测试,使用unsigned char类型具有比unsigned int更优化的代码,在使用时应该使用unsigned char作为延时变量。 以某晶振为12MHz的单片机为例,晶振为12MHz即一个机器周期为1us。
void delay_ms(unsigned int ms_number) // ms延时函数 (AT89C51 @ 11.0592MHz)
{
unsigned int i;
unsigned char j;
for(i=0;ims;i++)
{
for(j=0;j200;j++);
for(j=0;j102;j++);
}
}
void Delay()
{
unsigned char a,b,c;
for(a=0;a?;a++)
for(b=0;b?;b++)
for(c=0;c?;c++);
}
void delay_ms(unsigned int ms)
{
unsigned int i;
unsigned char j;
for(i=0;ims;i++)
{
for(j=0;j200;j++);
for(j=0;j102;j++);
}
}
拓展资料
C语言是一门通用计算机编程语言,应用广泛。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。
尽管C语言提供了许多低级处理的功能,但仍然保持着良好跨平台的特性,以一个标准规格写出的C语言程序可在许多电脑平台上进行编译,甚至包含一些嵌入式处理器(单片机或称MCU)以及超级电脑等作业平台。
你是用pc还是用单片机啊?
pc的当然速度快了。
那要看pc的时钟才能做1ms的延时:
void delay(unsinged long n){....}
中间要加空语句的,但是pc实际上没哟这么用的。
要是单片机。
12M的晶振就是(非1T的)
void delay(unsinged int)
{
inti,j;
for(j=0;jn;j++)
for{i=0;i125;i++}{;}
}
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流