重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
1、delay函数是一般自己定义的一个延时函数。
成都创新互联公司主要从事成都做网站、网站制作、网页设计、企业做网站、公司建网站等业务。立足成都服务建始,十多年网站建设经验,价格优惠、服务专业,欢迎来电咨询建站服务:18980820575
2、C语言定义延时函数主要通过无意义指令的执行来达到延时的目的。下面给出一个经典的延时函数。
// 定义一个延时xms毫秒的延时函数
void delay(unsigned int xms) // xms代表需要延时的毫秒数
{
unsigned int x,y;
for(x=xms;x0;x--)
for(y=110;y0;y--);
}
for里面是空语句自动会跳出,因为即使执行了也不会用时间。
要当它延时函数用,必须在循环体里干点事,比如随便做个加法减法什么的。
C语言的延迟函数一般是利用无意义程序运行来控制时间从而达到延时的目的
举个例子:
for(i=0;ix;i++)
for(j=0;j120;j++);
这是延时x毫秒的for循环语句。
值得注意的是记得最后的;一定得记得写。
和调用延时无关,是你中断使用有问题,你在中断函数中需要做到以下几步才行,1,关闭中断,2,重设中断计数值,3,功能实现部分,在你的程序里就是P1的赋值及延时部分,4,开启中断
这样才是正确的中断调用
这说明是你的延时时间不足,造成的错误。
这个延时函数是个指令延时,指令多了,延时时间就长。
for(x=0;x120;x++) 这个循环里,每一次循环,都会有一个 加一 和 判断跳转指令。
X为char 时是单字节,这些指令都是一条指令,当改为 int时 x就成了双字节了,这些操作就需要多几条指令来完成。这就相当于,每次循环的时间加长了。