找回密码
 立即注册

QQ登录

只需一步,快速开始

开启左侧

基于KEIL 软件的C语言编程,如何计算一段程序的执行时间?

[复制链接]
fan168968 发表于 2014-4-16 10:15:18 | 显示全部楼层 |阅读模式
如题,一段程序执行时间怎样确定,假如是把每条语句的执行时间累加,那么每条语句的时间如何确定???有别的方法可以确定执行时间吗
回复

使用道具 举报

qiqiqiqiqi 发表于 2014-4-28 16:52:20 | 显示全部楼层
在汇编中,每条语句会有固定的时间,但是C中就不一定了,C指令对应的汇编指令不一定是什么,有可能会相当复杂
回复 支持 反对

使用道具 举报

qiqiqiqiqi 发表于 2014-4-28 16:53:00 | 显示全部楼层
在汇编中,每条语句会有固定的时间,但是C中就不一定了,C指令对应的汇编指令不一定是什么,有可能会相当复杂
回复 支持 反对

使用道具 举报

a_ziliu 发表于 2014-4-28 17:45:56 | 显示全部楼层
軟體作法:
在一段程序执行之前,清除計數器,啟動計數器。
在一段程序执行之後,停計數器,取得計數器的值。

硬體作法:
一開始上電gpio為high
在一段程序执行之前,將io設low。
在一段程序执行之後,將io設high。
用示波器或la看這一段low的時間。
回复 支持 反对

使用道具 举报

 楼主| fan168968 发表于 2014-4-29 09:24:33 | 显示全部楼层
qiqiqiqiqi 发表于 2014-4-28 16:53
在汇编中,每条语句会有固定的时间,但是C中就不一定了,C指令对应的汇编指令不一定是什么,有可能会相当复 ...

对啊,就是基于这一个原因,我才不好确定程序的执行时间
回复 支持 反对

使用道具 举报

yejin1221 发表于 2014-8-26 14:20:26 | 显示全部楼层
一般我们都是写好了一个基本延时。用逻辑分析仪分析。最好调试为10US的为基准
回复 支持 反对

使用道具 举报

lic647 发表于 2014-11-12 01:01:30 | 显示全部楼层
執行前先紀錄timer值,執行後再將timer值減去前紀錄值即可。
回复 支持 反对

使用道具 举报

Angus 发表于 2014-11-12 12:52:35 | 显示全部楼层
可以在这段代码执行前读一下定时器,执行后再读一下定时器,二者一减,就是执行时间。
回复 支持 反对

使用道具 举报

高级模式
B Color Image Link Quote Code Smilies |上传

本版积分规则

新唐MCU