NEC单片机

[复制链接]
7465|12
 楼主| datreexia 发表于 2009-6-30 08:49 | 显示全部楼层 |阅读模式
有玩NEC单片机的前辈没,请教如何看一段程序的运行时间?
我用的是PM PLUS,仿真用SM+;谢谢
lelee007 发表于 2009-6-30 09:27 | 显示全部楼层

指令周期 * 指令条数,然后加总

lyjian 发表于 2009-6-30 09:50 | 显示全部楼层

指令周期 * 指令条数,然后加总

如果是循环执行,这样算就不对了
lelee007 发表于 2009-6-30 13:23 | 显示全部楼层

循环执行的,当然得把循环过的都加上

加总并非简单的加和
 楼主| datreexia 发表于 2009-6-30 14:52 | 显示全部楼层

我也是这样算的

程序长了就太麻烦了,有没有别的方法,或者软件设置一下
yewuyi 发表于 2009-6-30 15:59 | 显示全部楼层

如果发生中断算作几个周期?!

 楼主| datreexia 发表于 2009-6-30 17:33 | 显示全部楼层

不算中断

  呵呵,我说的不严密,是在不发生中断的情况下,

  俺正学 时间片和状态机结合的编程方法,个人感觉时间片的大小以及状态机中状态的个数与该程序段运行时间有关,所以想确定一下。

  俺没实际用过51,是不是keil提供这种统计时间的功能?NEC提供的软件没有统计时间的功能(或者没有找到),现在只能用笨法子。
 楼主| datreexia 发表于 2009-7-2 08:18 | 显示全部楼层

同感

小日本的东西真不好用,但是公司和NEC合作,没办法啊
WilliamL 发表于 2009-7-2 10:56 | 显示全部楼层

可以这样试试看

在程序的开头把一个不用的端口置1,在程序的结尾把这个端口置0,然后连接示波器检测这个端口,高电平的持续时间就是这段程序的执行时间。
 楼主| datreexia 发表于 2009-7-2 11:08 | 显示全部楼层

是个办法

不过不准确。
  经你提醒倒是可以使用定时器,但还是麻烦,因为有些分支、循环在不同的条件下有不同的路径,执行时间也就不定了。
  数数最准确。
zljzlj 发表于 2009-7-2 22:15 | 显示全部楼层

用工具栏中的timer

用工具栏中的timer

1.建议用硬件的IDC 或qb仿真器
2.K0 K0s都一样
3.在要计算程序时间的开始和结尾分别设断点
4.打开timer 选择break方式
5.运行程序,会在第一个断点处停下来
6.在点运行会在第二个断点处停,这时屏幕右侧显示的时间就是程序运行的时间
7.这个时间不是很精确,但是对于一般的调试足够用了
8.用sm+时注意设置好所用晶体,晶体决定了相应语句所耗的clock数

注意:这时观察两个断点之间的耗时,可以在两个顺序语句中做个试验
*SM是软件仿真,过短的程序时间可能显示的不太准,建议用硬仿真
 楼主| datreexia 发表于 2009-7-3 07:47 | 显示全部楼层

谢谢大侠

谢谢大侠细心讲解,我的经验太少了,这方面的资料也不好找,以后可能还要请教您。21ic真好
您需要登录后才可以回帖 登录 | 注册

本版积分规则

12

主题

91

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部