【Keil调试】如何利用debug测量程序运行的精准时间

〇、前言

需要清楚运行相关函数所需要的时间,来决定数据更新频率。倘若函数是计算大量公式,所花的时间较长,而更新周期过短,会导致代码跑飞;而更新周期过长,会导致控制不够精确,求导、求微分精度都不够。那么设备做剧烈运动的时候(如跳跃落地控制平稳),控制就尤其困难。
方法一、利用逻辑分析仪(最精确),但需要设备;
方法二、利用debug(较精确),不需要设备;

本文采用方法二。

参考博客:
Keil调试如何测量程序运行的精准时间:
http://t.csdnimg.cn/u1fQB
#keil调试# debug 查看代码能运行到哪一部分:
http://t.csdnimg.cn/v1LYf
参考以上这两篇博客就足够了。但也有相关补充如下。

一、操作补充

1、必须选对芯片主频(至关重要!!)
STMG474的主频是170Mhz,F407是168Mhz。
如果不选对主频,代价如下:
我只想延时3000ms,但是计算结果是480s!!!!!离大谱!离谱他妈给离谱开门,离谱到家了。。。
在这里插入图片描述

2、操作主要步骤
不懂的话,一定要结合参考博客一起看,只讲重点,赶时间去干饭。

设置主频,确保时间准确:
在这里插入图片描述

计时操作:
在这里插入图片描述
在这里插入图片描述
得出结果,在确定结果之前,一定要用延时函数分析一下,看看延时运行的时间有没有大致一样:
在这里插入图片描述

二、结果分析

运行时间为t = 0.30914ms,与自己写的10ms,差了很多倍!!!!!

为了方便求导,因此更新周期改为1ms,需要优化后面再说。

除了更新周期需要改,求导公式也要改。

  • 4
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值