智能车制作

标题: 代码执行时间如何知道? [打印本页]

作者: Cang    时间: 2009-5-10 10:32
标题: 代码执行时间如何知道?
请问如何能够知道你的代码的处理时间是否超过20ms?
作者: peilet    时间: 2009-5-10 10:32
本帖最后由 peilet 于 2009-5-17 10:04 编辑

可以在需要测量执行时间的程序前启动一个定时器,程序最后停止计数,然后就可以求到执行时间。

e.g.:

void timing(void)
{
    computational_time = timervalue_end - timervalue_start / timer_clockcycle;
}



startTimer();
funct();
stopTimer();
timing();

作者: HCS12    时间: 2009-5-10 12:34
可以看看http://blog.eccn.com/u/146002/archives/2009/12438.htm,whut_wj写的挺详细的
作者: sehszf    时间: 2009-5-11 19:04
谢谢
作者: Cang    时间: 2009-5-13 22:57
非常感谢,最近电信发神经,不能上网,刚好,感谢迟了,见谅!
作者: winkingh    时间: 2009-5-14 20:26
示波器,看执行周期!
作者: Cang    时间: 2009-5-16 22:15
我觉得楼上的方法好啊!!!
作者: peilet    时间: 2009-5-17 10:02
timervalue_end - timervalue_start 是S12单片机计数器在代码执行时间内的计数次数,
再除以计数器工作频率timer clock cycle,得到的computational time就是代码的精确执行时间了。
如果timer clock cycle的单位是MHz,如unsigned char timer clock cycle = 32 (MHz),则computational time变量的单位是1/MHz, 即us。

20ms的话,如果得到的computational time变量大于20000,则代码执行时间超过20ms。





欢迎光临 智能车制作 (http://dns.znczz.com/) Powered by Discuz! X3.2