单片机延时函数的问题
答案:3 悬赏:20 手机版
解决时间 2021-04-17 11:18
- 提问者网友:龅牙恐龙妹
- 2021-04-16 14:59
单片机延时函数的问题
最佳答案
- 五星知识达人网友:duile
- 2021-04-16 15:24
delay1:一次FOR后,ms参数值已经是0了,后面就不执行while了,所以执行不了1000*ms次,你要改的话可以把ms先赋值给另外一个变量,这样ms的值就不会改变啦。
{
int i,b;
for(i=1000;i>0;i--)
{
b=ms;
while(b--);
}
}
delay2用这个改就可以了。
{
int i,b;
for(i=1000;i>0;i--)
{
b=ms;
while(b--);
}
}
delay2用这个改就可以了。
全部回答
- 1楼网友:北方的南先生
- 2021-04-16 15:52
void delay(int ms)
{
int i;
while(ms--)
{
for(i=0;i<1000;i++);
}
}
{
int i;
while(ms--)
{
for(i=0;i<1000;i++);
}
}
- 2楼网友:罪歌
- 2021-04-16 15:34
delay1无论参数ms为什么值只能延时固定的一段时间,delay2同理,它只是把ms赋值给了j,其错误和delay1是一样的,你要明白这里的delay1和delay2实质上就是让单片机运行一千次for循环,而运行一千次for循环所用的时间就是延时的时间。delay3在前一个循环后又嵌套了一个循环而且整个循环都可以靠ms控制
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯