单片机延时程序
在单片机点灯延时程序中,有一段子代码voiddelayms(unitxms)﹛uniti,j;for(i=xms;i>0;i--)for(i=110;j>0;j--﹜中,...
在单片机点灯延时程序中,有一段子代码void delayms(unit xms)﹛unit i,j;for(i=xms;i>0;i--)for(i=110;j>0;j--﹜中,xms为什么要存在。而且它的值为啥。
展开
展开全部
函数的入口参数,当你调用延时函数时,... delayms(10);... 目的要延时10ms,这是这个uint的无符号整形变量xms就被赋值为10,在进入delayms();函数后,i=xms即i=10,然后做for循环,根据系统的时钟周期做出相应时间的延时。如果没有xms,你的延时函数只能写成固定延时的,即在delayms内部确定好i的值,很不方便。有了入口参数,就能像上面说的那样随意延时了(数值范围要在uint定义内,即小于65536)。
展开全部
举个例个,比如你想要延时5毫秒,那么只需要调用delayms(5);就行,如果你想要延时1000毫秒,那么调用delayms(1000);就行,xms的值由你设置,代表你想延时的时间
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
定时器用T1,定时方式用方式一,从TH1、TL1的数值知道,溢出一次定时50ms,那么循环100次,就是5S啦,所以以上程序确实是定时5秒!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2014-04-06 · 知道合伙人数码行家
凡问花P
知道合伙人数码行家
向TA提问 私信TA
知道合伙人数码行家
采纳数:389
获赞数:2614
69.12~76.3空军86621当兵,76.3~78.12北京电是技术研究所工人,79~82,北航二分院本科,之后留校任教至今。
向TA提问 私信TA
关注
展开全部
xms是x毫秒的字头缩写,这是带参数延时模块.
在原来设计的单片机系统中,应该是带入模块延时毫秒的数值.但用在不同系统上[主要是系统时钟]其中的i=110需要实际计算或测算后更改,否则不准.
在原来设计的单片机系统中,应该是带入模块延时毫秒的数值.但用在不同系统上[主要是系统时钟]其中的i=110需要实际计算或测算后更改,否则不准.
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
从你的问题中可以看出,你要了解什么是形参,什么是实参。这是C语言在定义函数时的基本要求,xms是形参,可以任意赋值,但是其类型必须是你定义 的uint型。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询