[经验分享] 获取单片机代码运行时间的方法

[复制链接]
262|51
xiaoyaodz 发表于 2026-5-18 20:23 | 显示全部楼层
使用GPIO翻转结合示波器测量法
mattlincoln 发表于 2026-5-18 20:56 | 显示全部楼层
RTOS下排除任务切换的时间测量方法
ccook11 发表于 2026-5-18 21:47 | 显示全部楼层
这些方法中,哪个最适配微秒级测量?
yorkbarney 发表于 2026-5-18 22:44 | 显示全部楼层
DWT周期计数器法具体如何实现?
backlugin 发表于 2026-5-18 22:59 | 显示全部楼层
如何确保计时器不溢出影响结果?              
lihuami 发表于 2026-5-19 07:40 | 显示全部楼层
51单片机汇编计数法实例解析              
yeates333 发表于 2026-5-19 07:59 | 显示全部楼层
示波器测单片机代码时间的具体步骤是什么?
tifmill 发表于 2026-5-19 08:28 | 显示全部楼层
Systick通常用于操作系统调度,测量时需确保无其他任务占用;若代码运行期间触发Systick中断,需在中断服务程序中保存上下文,避免计数值被意外修改;测量结果受系统时钟频率影响,需提前校准时钟源。
elsaflower 发表于 2026-5-19 09:04 | 显示全部楼层
如何消除编译器优化带来的误差?              
macpherson 发表于 2026-5-21 12:49 | 显示全部楼层
直接调用 HAL_GetTick () 获取系统启动后的毫秒数,执行前后相减得到耗时,无需底层配置,适合裸机环境下粗略测量函数、任务、流程的整体耗时。
biechedan 发表于 2026-5-21 13:54 | 显示全部楼层
使用定时器中断计时法              
dspmana 发表于 2026-5-21 14:19 | 显示全部楼层
利用系统滴答定时器              
houjiakai 发表于 2026-5-21 14:45 | 显示全部楼层
对于定时器法,在无负载时测量中断服务程序本身耗时并补偿;对于DWT法,连续读取两次DWT_CYCCNT并计算差值,此差值即为读取操作的开销,应在最终结果中扣除;对于复杂代码段,可多次循环测量后取平均值。
暖了夏天蓝了海 发表于 2026-7-27 14:47 | 显示全部楼层
代码中使用了SysTick定时器,这是一种常用于测量时间的方法。不过,记得在实际应用中考虑定时器溢出的情况。
别乱了阵脚 发表于 2026-7-27 16:29 | 显示全部楼层
代码示例很清晰,不过在实际应用中,是否需要考虑定时器中断的影响呢?
jiekou001 发表于 2026-7-28 12:45 | 显示全部楼层
根据使用场景分为软件计时、硬件定时器计时、外设捕获、示波器测量四大类,适配 51、STM32、PIC、ESP32 等所有单片机。
情和欲 发表于 2026-8-1 17:16 | 显示全部楼层
看起来代码中使用了SysTick定时器,这是一种常用且有效的方法。不过,记得在实际应用中根据单片机的时钟频率调整定时器配置。
xinpian101 发表于 2026-8-1 18:31 | 显示全部楼层
根据硬件资源、精度需求分为软件计时、硬件定时器计时、调试器计数三大类,适配 51、STM32、ESP32、PIC、AVR 等所有单片机。
zephyr9 发表于 2026-8-10 21:27 | 显示全部楼层
示波器测量代码执行时间,先让单片机执行目标代码,然后在示波器上观察代码执行过程中的信号变化,测量信号从一个关键点变到另一个关键点的时间,即为代码执行时间。
Moon月 发表于 2026-8-11 18:08 | 显示全部楼层
逻辑分析仪和示波器是测量电路、单片机和电机的重要工具,能帮你观察和分析信号波形。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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