【问题标题】:Time measurements for function in microcontroller微控制器中功能的时间测量
【发布时间】:2016-09-27 19:27:47
【问题描述】:

我在一个项目中使用两个微控制器,我想借助两个微控制器的内部定时器来测量某些代码的执行时间。但是一个微控制器的定时器计数到 32 位值,第二个微控制器的定时器可以计数到 16 位值然后重新启动。我知道代码的执行时间超过 16 位值。你能建议我解决这个问题吗? (打开和关闭 GPIO 引脚并不能提供有用的结果)

【问题讨论】:

    标签: microcontroller countdowntimer nxp-microcontroller


    【解决方案1】:

    假设执行时间少于几天或几小时,您应该能够使用任一类型的计时器来测量执行时间。真正的问题是如何配置计时器以满足您的需求。您如何配置计时器将控制测量的精度或粒度,以及可以测量的最大间隔。

    一般的做法是这样的:

    1. 确定所需的精度并估计要测量的最长间隔
    2. 根据精度,确定满足精度要求的定时器时钟预分频器或分频器。例如,如果时钟速度为 50 MHz,并且您需要微秒精度,则选择一个使 (Prescaler) / (Clock speed) ~ 1 微秒的预分频器。电子表格对此有所帮助。对于这种情况,64 的分频器值使我们每个定时器增量大约有 1.28 微秒。
    3. 确定您的定时器寄存器是否足够大。对于 16 位定时器,您可以测量 (1.28 微秒) * (2^16 - 1) = 0.084 秒,或大约十分之一秒。如果您测量的对象比这更长,您将需要重新考虑您的精度要求。

    您现在应该已经确定了配置计时器的关键参数,但要牢记这些限制。如果您用更具体的信息更新您的答案,例如您计划使用的微控制器以及您要测量的内容,我可以更具体。

    【讨论】:

      猜你喜欢
      • 2019-04-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-02-28
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多