关于keil延时函数的问题,和硬件不一致

现在要编写一个硬件的程序,对时序要求很高,因此需要较为精确的延时函数,由于要用很多,所以不用定时器,用延时函数。不过在用keil仿真我的延时函数的时候我发现一个问题,就是... 现在要编写一个硬件的程序,对时序要求很高,因此需要较为精确的延时函数,由于要用很多,所以不用定时器,用延时函数。不过在用keil仿真我的延时函数的时候我发现一个问题,就是用keil软件仿真出来的时间和用硬件仿真出来的时间不一致,同样都是12MHZ,但是用硬件仿真出来的时间是用软件仿真出来时间的两倍。不要跟我说keil仿真时间不准确,应该不是这个原因,呵呵。也就是说是2倍关系,由此我又拿来12MHZ下C的标准延时1us的函数_nop_()来试,软件是0.5us,而硬件才是1us.这是为什么啊???回答满意,另有追分!
谢谢一楼的回答,你说的很正确,但这也正是我当时提这个问题的原因,就是因为keil仿真出来的是0.5us,而硬件仿真出来的是1us。虽然你没有解答我的问题,但还是感谢你。我后来同多询问客服找到问题的答案了,就是我买的这套硬件仿真器,针对我用的p87c591的型号,他又两种时钟模式可选,这个可以在keil中进行设置。他们出场的仿真器默认的是12时钟模式,还有一种是6时钟模式。当设置成6模式时,就可以完全模拟该片子的真是情况了。由此keil和硬件的仿真结果也就一致了.
展开
 我来答
20078004058
2009-08-17 · TA获得超过673个赞
知道小有建树答主
回答量:270
采纳率:0%
帮助的人:286万
展开全部
是这样的,keil有自己的晶振,你在使用时要把keil的晶振调节成和硬件的晶振一样的大小,这样时间就一样了。
还有如果要精确的延时,最好是用程序自带的延时函数,
另外我要提醒的是,在主函数大循环中不要过多使用延时功能,建议用计数功能代替延时,这样比较省资源。
北京康思
2018-09-20 广告
1、基本功能。市面上的电子负载均有基本的四项功能:恒流、恒压、恒阻和恒功率(安捷伦没有恒功率)。在功能基本相同,精确度相差不大的情况下,怎么判断是否符合要求呢?CHROMA和博计的电子负载只有一套工作电路,就是恒流功能。其他功能是根据欧姆定... 点击进入详情页
本回答由北京康思提供
sovietox
2009-08-17 · TA获得超过157个赞
知道小有建树答主
回答量:85
采纳率:0%
帮助的人:88.9万
展开全部
不知道你说的硬件仿真是什么意思,P87C591与传统51分频方式有点不一样,接12M晶振时,机器周期是0.5微秒,而不是1微。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式