标题:
单片机延时函数为什么要用两个变量i ;j来循环?
[打印本页]
作者:
华仔51
时间:
2017-9-18 20:11
标题:
单片机延时函数为什么要用两个变量i ;j来循环?
51单片机延时函数
delay(uchar t)
{
uchar i,j;
for(i=0;i<t;i++)
for(j=0;j<t;j++);
}
为什么要用两个变量i ;j来循环?
作者:
blackstar
时间:
2017-9-19 00:00
这里只是你写的延时函数,这样写就这样用。
作者:
blackstar
时间:
2017-9-19 00:03
这里只是你写的延时函数而已,这样写就这样用。
你也可以这样写延时函数:
typedef unsigned int u8;
void delay(u8 i)
{
while(i--);
}
作者:
鲁翔成
时间:
2017-9-19 08:06
一个外循环一个内循环,为了增加延时呀
作者:
HC6800-ES-V2.0
时间:
2017-9-19 08:11
第一:循环变量是unsigned char型的,一次循环不够时间
第二:可以调节变量的值,形成不同的延时时间
第三:还可以再加循环的,谁说只能是两个变量?
作者:
漫步经心
时间:
2017-9-19 08:49
你试试用一个能不能控制到你想要的延时时间
作者:
13476011951
时间:
2017-9-19 09:36
一个变量延时太短 再加一个延时更长
作者:
shw7610
时间:
2017-9-19 10:09
不一定非要用i, j 也可以用x、y来循环
作者:
xiaoxiaozhu123
时间:
2017-9-19 10:20
可以写成不同的延时时间吧
作者:
kaidxp66
时间:
2017-9-19 10:22
与你的主频和延时时长有关。不是一定要i,j的。延时时间短完全可以只要一个i或j(单个变量)。还可以用定时器来定时。
作者:
crcok
时间:
2017-9-19 14:04
增加延时用
作者:
笨鸟想飞
时间:
2017-9-19 14:51
只是例程习惯,一般不去深究
作者:
chengwh
时间:
2017-9-19 16:05
时间短的话,一个变量循环也可以。
作者:
weidacn
时间:
2017-9-19 20:56
经验延时,循环嵌套是为了次数更多
作者:
童000000
时间:
2017-9-19 22:14
你这样写代表延时t*t微秒,是你输入的平方。
作者:
童000000
时间:
2017-9-19 22:17
你的函数延时t*t微秒,如果只有一个函数是延时t微秒。
作者:
lianghuanan
时间:
2018-12-2 11:41
增加延时时间,i*j这样时间就更长了,效果都是一样的
作者:
794732706
时间:
2018-12-2 14:16
可以只用一个啊,时间段一些
作者:
2089235932
时间:
2018-12-2 15:50
i,j,两者互乘,增加延时
作者:
探路
时间:
2018-12-2 16:55
这个延时涉及到执行for循环占用机器周期的问题,你也可以不这样写,另外你也可以用stc-isp设定好晶振频率自动生成延时函数
作者:
alex_wendell
时间:
2018-12-2 17:11
首先,你必须搞清楚延时函数的原理,它实际上只是仅仅执行一些,没有实质性影响的所谓“无意义指令”。两重for的作用:简单的说,就像高中数学中的“乘法原理”一样,这样可以很轻易的迅速增加上述“无意义指令”的数目。这么解释,不知道你看明白了没。
作者:
sibling520
时间:
2018-12-2 17:22
延时时长=循环的指令时间*循环次数
作者:
citizennju
时间:
2018-12-2 19:00
两重循环可以使延迟的实践大为增加,但也要消耗大量的CPU时间,建议用定时器。
作者:
citizennju
时间:
2018-12-2 19:01
循环可以使延迟的实践大为增加,但也要消耗大量的CPU时间,建议用定时器。
作者:
leon112
时间:
2018-12-2 19:13
习惯问题
作者:
这一生只为你
时间:
2018-12-2 19:21
这两个参数名字随便起,a,b,c,d,l,m,n,x,y都可以,这只是个名字而已
作者:
22311
时间:
2018-12-2 20:07
增加延时
作者:
niccol
时间:
2018-12-2 23:29
效要和一个别一样的
作者:
PBL
时间:
2018-12-3 08:28
就两个名字而以,什么都行,只要不是关键字。
作者:
hello_liu
时间:
2018-12-3 14:04
双重循环增加时间的效果
作者:
zhuanzhuba
时间:
2018-12-3 19:59
i和j在C语言中常用作循环变量;单片机程序用C语言编写,故也用这i和j循环;
作者:
zhuanzhuba
时间:
2018-12-3 20:01
i和j是C语言常用的循环变量;单片机程序用C语言编写,故也用这两个变量循环;两个循环为了增加时间
作者:
jybieting
时间:
2020-6-28 07:24
alex_wendell 发表于 2018-12-2 17:11
首先,你必须搞清楚延时函数的原理,它实际上只是仅仅执行一些,没有实质性影响的所谓“无意义指令”。两重 ...
谢谢解释,理解了!
作者:
wwh2382
时间:
2020-6-28 15:58
每个程序员都有自己的编程习惯。写这个延时函数的程序员恰好不愿意写大数。另外大数容易写错,拆成两个数可以避免出错,是个不错的编程习惯
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1