几种测量程序运行时间的方法

几种测量程序运行时间的方法,第1张

有时候我们需要知道自己的单片机程序需要花费多长时间,以及delay延时的精确时间等,今天就给大家介绍几种测量程序运行时间的方法。

1、单片机内部定时器

使用单片机内部定时器,在待测程序段的开始启动定时器,在待测程序段的结尾关闭定时器。如下所示:

几种测量程序运行时间的方法,8356343c-12f5-11ed-ba43-dac502259ad0.png,第2张

为了测量的准确性,要进行多次测量,并进行平均取值。另外,如果待测程序耗时较长,要考虑定时器的溢出。

2、借助外部工具

如果你的程序没有多余的定时器可用,那么可以借助外部工具来测量。在待测程序开始时将一个GPIO置高,在待测程序结束时将GPIO置低。用示波器或者其他设备测量高电平的持续时间即可。

3、使用编译器

在线仿真时,编译器也可以帮你计算程序运行时间。在Keil中,工程设置中“Debug”下。点击SetTIng:

几种测量程序运行时间的方法,83854de4-12f5-11ed-ba43-dac502259ad0.png,第3张

选择Trace,输入单片机系统时钟,以STM32F103为例,输入72MHz,勾选Trace Enable。

几种测量程序运行时间的方法,83c23470-12f5-11ed-ba43-dac502259ad0.png,第4张

点击确定。点击几种测量程序运行时间的方法,83d97176-12f5-11ed-ba43-dac502259ad0.png,第5张进入Debug模式,右下角会出现程序运行的时间。

几种测量程序运行时间的方法,83e439bc-12f5-11ed-ba43-dac502259ad0.png,第6张

在待测代码前后各加入一个断点,记录两个断点的t1时间,两个时间差即为待测代码运行所需的时间。

在IAR中,可以通过查看CYCLECOUNTER(在CPU registers中)的值,计算两个断点的差值,乘以指令周期(MCLK)便是待测代码的运行时间。

几种测量程序运行时间的方法,83fc82f6-12f5-11ed-ba43-dac502259ad0.png,第7张

审核编辑 :李倩

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/dianzi/2710987.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-08-17
下一篇 2022-08-17

发表评论

登录后才能评论

评论列表(0条)

保存