0
收藏
微博
微信
复制链接

怎样测量单片机程序的运行时间?

2025-02-28 14:47
170

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

1.单片机内部定时器

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

2d7e0e984aea322d3b2fc7a319bbdb.jpg

为了测量的准确性,要进行多次测量,并进行平均取值。另外,如果待测程序耗时较长,要考虑定时器的溢出。2.借助外部工具如果你的程序没有多余的定时器可用,那可以借助外部工具来测量。在待测程序开始时将一个GPIO置高,在待测程序结束时将GPIO置低。用示波器或者其他设备测量高电平的持续时间即可。

3.使用编译器

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

8e42c51aea99f35873066d9254d63a.jpg

选择Trace,输入单片机系统时钟,以STM32F103为例,输入72MHz,勾选Trace Enable。(Keil的Trace功能还有更多实用功能,后面将详细讲解)

aed283a97c838d08339afdf64ecfb4.jpg

点击确定。点击050465db9f020fbf630cb923785d7b.jpg进入Debug模式,右下角会出现程序运行的时间。

21e716b87ad19edaf1d03540e9e222.jpg

在待测代码前后各加入一个断点,记录两个断点的t1时间,两个时间差即为待测代码运行所需的时间。在IAR中,可以通过查看CYCLECOUNTER(在CPU registers中)的值,计算两个断点的差值,乘以指令周期(MCLK)便是待测代码的运行时间。

53ccbd98a2e9436aecaa26105b553e.jpg

登录后查看更多
0
评论 0
收藏
侵权举报
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表凡亿课堂立场。文章及其配图仅供工程师学习之用,如有内容图片侵权或者其他问题,请联系本站作侵删。

热门评论0

相关文章

嵌入式技术开发

多年工作经验,跟大家分享嵌入式软硬件技术的干货~