电子工程师技术服务社区
公告
登录
|
注册
首页
技术问答
厂商活动
正点原子
板卡试用
资源库
下载
文章
社区首页
问答
关于延时的一些问题
已解决
73482
个问题
已帮助
5993
位优秀工程师
关于延时的一些问题
瞎折腾
2016-09-09
浏览量:770
本帖最后由 瞎折腾 于 2016-9-9 16:44 编辑
延时程序相信都不陌生,但是stc的单片机的在不是1T的情况下它的延时是不能通过keil观察的。现在官方的软件里有一个延时计算器,但是为什么它的延时出来是下面这样的呢?
void Delay10000us() //@11.0592MHz
{
unsigned char i, j;
i = 108;
j = 145;
do
{
while (--j);
} while (--i);
}
有的都是while,但是一般的都是用for如下面这样的,
Void delay500ms()
{
unsigned char i,j,k;
for(i=15;i>0;i--)
for(j=202;j>0;j--)
for(k=81;k>0;k--);
}
两种函数都是延时的,只是用的语句不一样,在keil中验证过for的延时感觉不能确定,是不是while这种函数还好计算时间啊?问什么官方要用人们不经常用的函数呢?
显示全部
单片机
关注问题
写回答
1
0
收起
我来回答
上传资料:
选择文件
文件大小不超过15M(格式支持:doc、ppt、xls、pdf、zip、rar、txt)
最佳答案
汉云
要看反汇编的,看看汇编,是不是生成 的不同呢?
发布于
2016-09-09
举报
评论 0
0
0
其他答案
数量:
7
7943603
没这一说吧。
发布于
2016-09-09
举报
评论 0
0
0
瞎折腾
我真心测过的,你不信试一下延时在keil上显示的延时,到芯片里就不行了!提别是iic这种需要时序的程序
发布于
2016-09-09
举报
评论 0
0
0
fjjjnk1234
确定好机器周期,用for、while延时没啥差别吧,不用管Keil中显示的,那个跟设置有关,不确定Keil中是按照1T还是12T来计算的,自己实际计算对了就行。
发布于
2016-09-09
举报
评论 0
0
0
999
软件延时这种事情,还是要借助示波器看才准。并且是要在无OS、优化等级不变的情况下。
发布于
2016-09-09
举报
评论 0
0
0
huihui163
对的一般都是用For循环较多
发布于
2016-09-09
举报
评论 0
0
0
瞎折腾
汉云 发表于 2016-9-9 17:30
要看反汇编的,看看汇编,是不是生成 的不同呢?
这个真没看,但是stc的软件生成的延时都是那种的!
发布于
2016-09-09
举报
评论 0
0
0
石亚东
看反汇编比较好
发布于
2016-09-09
举报
评论 0
0
0
相关问题
问题达人
换一批
文章
知识经验换现金
换一批
关于延时的一些问题
写回答
关注问题
×
我要举报该内容,理由是:
内容质量差:
内容太水、伸手党
垃圾广告信息:
广告、招聘、推广、测试内容等
偏离问答主题:
与技术无关、讨论类
与社区已有内容重复:
违规内容:
色情、暴力、血腥、敏感信息等
不友善内容:
人事攻击、挑衅辱骂、恶意行为
以上选项都不是: