打印

请问如何计算单片机程序的运行时间呢?

[复制链接]
10342|15
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
不锈钢铁|  楼主 | 2011-8-19 11:02 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
最近BOSS要我看看一个屏幕驱动板程序运行的时间,已在人机工程试验中,去除掉运行程序的时间。但我还真没这个概念。难道要我数有多少条指令,然后乘机器周期计算?但一条C语言语句,转很成几条机器指令呢?

相关帖子

沙发
zhangjunye| | 2011-8-19 11:04 | 只看该作者
时间不太长的话用定时器记录,时间很长的话弄一个时钟芯片。

使用特权

评论回复
板凳
hjs1618| | 2011-8-19 11:09 | 只看该作者
可以另用一单片机写一程序,计算时间!

使用特权

评论回复
地板
lll605866| | 2011-8-19 11:13 | 只看该作者
看看c的基本知识喽
               

使用特权

评论回复
5
不锈钢铁|  楼主 | 2011-8-19 14:24 | 只看该作者
4# lll605866 你的意思不会真的让我去算C语句对应的指令吧,:L

使用特权

评论回复
6
fushaobing| | 2011-8-19 17:29 | 只看该作者
利用一个I/O脚,用示波器测量。

使用特权

评论回复
7
delin17| | 2011-8-19 17:46 | 只看该作者
最简单的方法,利用单片机的Timer,程序开始运行起动,结果停止,再计算Timer的时间,就可以知道程序运行的时间了,只不过这个前提是晶振你知道他的频率,不然就有误差。

使用特权

评论回复
8
不锈钢铁|  楼主 | 2011-8-19 21:13 | 只看该作者
6# fushaobing 好主意

使用特权

评论回复
9
mxh0506| | 2011-8-19 21:42 | 只看该作者
利用调试工具的function profile功能. 要看你用的调试器功能是不是够全面了.

使用特权

评论回复
10
729144646| | 2011-8-19 23:52 | 只看该作者
恩恩

使用特权

评论回复
11
tanwanshui| | 2011-8-20 08:44 | 只看该作者
在程序运行完后输出一条指令

使用特权

评论回复
12
jack821119| | 2011-8-20 16:45 | 只看该作者
编译器有这个功能,可以看程序的运行时间的 。

使用特权

评论回复
13
wzt19910506| | 2011-8-20 23:22 | 只看该作者
keil就有这个功能

使用特权

评论回复
14
fengxt27| | 2011-8-20 23:31 | 只看该作者
keil中的仿真功能,在语句前后设置断点,计算时间差

使用特权

评论回复
15
15051860045| | 2013-10-18 23:42 | 只看该作者
delin17 发表于 2011-8-19 17:46
最简单的方法,利用单片机的Timer,程序开始运行起动,结果停止,再计算Timer的时间,就可以知道程序运行的 ...

如果我运行的程序时间超过定时器的最大时间该怎么改进一下呢?

使用特权

评论回复
16
diweo| | 2013-10-19 15:41 | 只看该作者
15051860045 发表于 2013-10-18 23:42
如果我运行的程序时间超过定时器的最大时间该怎么改进一下呢?

假设你定时器中断时间为1ms。
那么,设一个unsigned long变量(32位,16位可能不够),开机就启动,每中断一次就+1。
32位从全0变成全1要多少个1毫秒,你自己算吧。。。

使用特权

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

本版积分规则

个人签名:小鸟快跑

31

主题

730

帖子

5

粉丝