[DemoCode下载] 测量单片机程序运行时间

[复制链接]
5986|53
 楼主| mikewalpole 发表于 2024-9-28 09:00 | 显示全部楼层 |阅读模式

1、使用编译器keil

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

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

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

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

0.02614-0.01614=0.01s=10ms   即为当前代码行运行时间(定时为10ms)


呐咯密密 发表于 2024-9-28 14:30 | 显示全部楼层
这个功能有时候启动不了
micoccd 发表于 2024-9-28 14:38 | 显示全部楼层
这个功能很实用,
药无尘 发表于 2024-9-28 14:49 | 显示全部楼层
这个只能做参考,
我想看大海 发表于 2024-9-28 15:00 | 显示全部楼层
一般都是用高低电平和示波器
黑心单片机 发表于 2024-9-28 15:18 | 显示全部楼层
这个一定要注意晶振的大小
jasontu 发表于 2024-10-3 09:15 | 显示全部楼层
拿一个timer开中断计数器,就可计算时间
youtome 发表于 2024-10-7 14:05 | 显示全部楼层
初始化计时器(设置计数模式、预分频值等)。
启动计时器。
执行你的程序代码。
停止计时器。
读取计时器的值。
根据计时器的时钟频率计算出程序运行的时间。
gygp 发表于 2024-10-7 15:39 | 显示全部楼层
在待测程序段的开始和结束处,通过改变一个GPIO的状态(例如,从高电平变为低电平),然后使用逻辑分析仪或示波器测量这个GPIO状态变化的持续时间,从而得到代码的运行时间。这种方法准确度高,但需要额外的硬件设备。
youtome 发表于 2024-10-7 18:05 | 显示全部楼层
可以使用软件循环计数的方法来粗略估计程序运行时间,但这种方法通常不够精确。
robertesth 发表于 2024-10-8 09:59 | 显示全部楼层
在程序的关键位置输出一个脉冲信号(例如,通过一个IO口)。
使用逻辑分析仪或示波器捕捉这个脉冲信号。
通过测量脉冲之间的时间间隔来得到程序运行时间。
sdCAD 发表于 2024-10-8 12:28 | 显示全部楼层
一些高级的单片机开发环境和编译器提供了代码性能分析工具。这些工具可以在编译程序时或者在程序运行时对代码进行分析,获取程序各个部分的运行时间信息。
ccook11 发表于 2024-10-8 19:14 | 显示全部楼层
避免在测量期间进行任务切换或多任务操作,这可能会影响测量结果的准确性。
bartonalfred 发表于 2024-10-9 09:31 | 显示全部楼层
配置一个GPIO引脚为输出模式,并在待测程序段前后改变其状态。
使用逻辑分析仪或示波器测量GPIO引脚状态变化的时间间隔。
averyleigh 发表于 2024-10-9 11:33 | 显示全部楼层
使用外部计时器或频率计来测量程序段的运行时间。
当程序段开始时启动外部计时器,结束时停止计时器。
1988020566 发表于 2024-10-9 13:15 | 显示全部楼层
配置定时器中断,使其每毫秒触发一次。
在中断服务程序中累加一个全局变量。
在待测程序段前后分别记录全局变量的值。
计算两个值的差,得到程序运行时间。
jonas222 发表于 2024-10-9 15:39 | 显示全部楼层
利用单片机内部的定时器来记录程序段的开始和结束时间。
启动定时器,当程序段开始执行时清零计数器。
程序段执行完毕后,读取定时器的值,得到运行时间。
ulystronglll 发表于 2024-10-9 19:40 | 显示全部楼层
定时器的分辨率决定了可以测量的最短时间间隔。选择合适的定时器配置以满足测量需求。
菜鸟的第一步 发表于 2024-10-10 14:31 | 显示全部楼层
我一般用示波器测量
sesefadou 发表于 2024-10-11 09:06 | 显示全部楼层
这是最直接的方法之一。大多数单片机都有内置的定时器/计数器,可以用来测量时间间隔。以下是基本步骤:

在待测程序段的开始启动定时器。
在待测程序段的结尾关闭定时器。
读取定时器的计数值,这个值代表了定时器启动和停止之间的时间间隔。
为了提高准确性,可以进行多次测量并取平均值。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

50

主题

1764

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部