打印

请问Keil中的STC库指令周期是准确的吗?

[复制链接]
1692|12
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
ar3000a|  楼主 | 2020-6-21 01:02 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我导入了STC库,模拟运行时,发现Y3指令集的CPL A指令是一个周期,但手册写着2周期。
正在验证其他指令。
麻烦有研究过的老师给个回复,用keil模拟运行能不能模拟出STC单片机的各种指令周期呢?

使用特权

评论回复

相关帖子

沙发
xxdcq| | 2020-6-21 10:20 | 只看该作者
定时器和串口波特率是准确的,指令周期别指望它准确,说的是1T的,我们测试的实际是1.38T 左右

使用特权

评论回复
板凳
ar3000a|  楼主 | 2020-6-21 10:32 | 只看该作者
xxdcq 发表于 2020-6-21 10:20
定时器和串口波特率是准确的,指令周期别指望它准确,说的是1T的,我们测试的实际是1.38T 左右 ...

在keil里面能不能自己调整一下。软仿真指令周期怎么自定义啊?

使用特权

评论回复
地板
jekey| | 2020-6-21 11:17 | 只看该作者
写程序最好不要跟指令周期相关,方便移植到其他平台。

使用特权

评论回复
5
wztoad| | 2020-6-21 16:01 | 只看该作者
不准确,我都延时10秒,然后掐秒表校准

使用特权

评论回复
6
ar3000a|  楼主 | 2020-6-23 01:45 | 只看该作者
我一般会很认真搞清楚各种细枝末节的问题,求得安心。 经过在实际电路实验得出点结论:
实际搭了电路测试了几条指令,INC A,2周期,keil里面正确,实际电路正确。
CPL A 实际电路正确,keil里面不正确。NOP都正确,SETB P3.7都正确。

查看Y3,Y5等指令集表格,发现只有Y3的才会INC A是2周期,其他都不是2周期。
这样能不能下结论,keil的STC库,至少对Y3指令集来说,一部分指令是正确的,另一些则没搞好。 官网下载来的。

使用特权

评论回复
7
ar3000a|  楼主 | 2020-6-23 01:52 | 只看该作者
jekey 发表于 2020-6-21 11:17
写程序最好不要跟指令周期相关,方便移植到其他平台。

我是做时间相关工作的,程序每个分支,跳转,都需要等时。也没有平台可移植,因为水平差,只追究每个指令就累死我了。好容易想到在电脑模拟一下,又遇上这种库并不正确的事情。

使用特权

评论回复
8
coody| | 2020-6-23 22:21 | 只看该作者
要想知道程序执行时间,参考STC手册中的汇编指令,没条都有时钟数,这个是准确的。KEIL里的时钟数是按8031来计数显示的。

使用特权

评论回复
9
ar3000a|  楼主 | 2020-6-24 17:07 | 只看该作者
coody 发表于 2020-6-23 22:21
要想知道程序执行时间,参考STC手册中的汇编指令,没条都有时钟数,这个是准确的。KEIL里的时钟数是按8031 ...

不是,STC做了库,导入以后,keil时钟数就不是12T了。

使用特权

评论回复
10
ar3000a|  楼主 | 2020-6-27 08:41 | 只看该作者
官方有没有人在?

使用特权

评论回复
11
oufuqiang| | 2020-8-2 10:48 | 只看该作者
最求极致性能的时候,这些周期就用得上了。

使用特权

评论回复
12
Q624353765| | 2020-8-9 16:54 | 只看该作者
没法比的,以stc官方数据为准

使用特权

评论回复
13
xiaowuzxc| | 2020-10-28 20:42 | 只看该作者
应该是准的。stc15,用示波器看io口翻转,周期符合指令数目。精准延时还是用定时器比较好

使用特权

评论回复
发新帖
您需要登录后才可以回帖 登录 | 注册

本版积分规则

21

主题

201

帖子

1

粉丝