2016-09-27 17 views
0

我正在爲一個項目使用兩個微控制器,我想通過兩個微控制器的內部定時器來測量某些代碼的執行時間。但是,一個微控制器的計時器計數到32位值,第二個微控制器的計時器可以計數到16位值,然後重啓。我知道代碼的執行時間大於16位值。你能否建議我解決這個問題的任何解決方案。 (打開和關閉GPIO引腳不會提供有用的結果)微控制器功能的時間測量

回答

0

假定執行時間少於幾天或幾小時,您應該能夠使用任一類型的計時器來測量執行時間。真正的問題是如何配置定時器以滿足您的需求。如何配置定時器將控制測量的精度或粒度,以及可以測量的最大間隔。

的一般方法將是這樣的:

  1. 確定所需的精度和估計最長間隔要測量
  2. 給出的精確度,決定定時器的時鐘分頻器或分頻器,將滿足您的精度要求。例如,如果時鐘速度爲50 MHz,並且您需要微秒精度,則選擇預分頻器(預分頻器)/(時鐘速度)〜1微秒。電子表格有助於此。對於這種情況,分頻器值64給我們每個定時器增量大約1.28微秒。
  3. 確定您的定時器寄存器是否足夠大。對於16位定時器,您可以測量(1.28微秒)*(2^16 - 1)= 0.084秒,或大約十分之一秒。如果你正在測量的東西比這更長,你將需要重新考慮精度要求。

您應該現在已經確定了配置計時器的關鍵參數,並記住了這些限制。如果你用更多的細節更新你的答案,比如你打算使用的微控制器和你想要測量的東西,我可以更具體一些。