微控制器功能的时间测量

时间:2016-09-27 19:27:47

标签: microcontroller countdowntimer nxp-microcontroller

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

1 个答案:

答案 0 :(得分:0)

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

一般方法是:

  1. 确定所需的精度并估算要测量的最长间隔
  2. 鉴于精度,确定定时器时钟预分频器或分频器,以满足您的精度要求。例如,如果时钟速度为50 MHz,并且您需要微秒精度,则选择预分频器,使(预分频器)/(时钟速度)〜1微秒。电子表格有助于此。对于这种情况,分频器值64为每个定时器增量提供大约1.28微秒。
  3. 确定您的定时器寄存器是否足够大。对于16位定时器,您可以测量(1.28微秒)*(2 ^ 16 - 1)= 0.084秒,或大约十分之一秒。如果你测量的东西花费的时间比这长,你需要重新考虑你的精度要求。
  4. 您现在应该已经确定了配置计时器的关键参数,请记住这些限制。如果您使用更具体的内容更新答案,例如您计划使用的微控制器以及您要测量的内容,我可以更具体。