2016-09-27 51 views
0

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

回答

0

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

的一般方法将是这样的:

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

您应该现在已经确定了配置计时器的关键参数,并记住了这些限制。如果你用更多的细节更新你的答案,比如你打算使用的微控制器和你想要测量的东西,我可以更具体一些。