0

32ビットのマイクロコントローラでは、マイクロコントローラの異なる動作周波数のコードの除外時間を測定したいと考えています。まず、周期タイマー(PIT)を使用しましたが、高分解能を提供しませんでした。なぜなら、私が高周波数でPITを動作させると、そのカウンターがオーバフローしたからです。システムクロックで動作できるので、システムタイマー(STM)に移行しました。マイクロコントローラの異なる動作周波数では、STMはコードの実行時間を同じにします。あなたの誰もがこの問題で私を助けることができますか?ありがとうマイクロコントローラのコードの実行時間

+0

「同じ実行時間」は、システムタイマのカウンタ値が同じティック数をカウントしたことを意味しますか?カウンター値を時間に換算するティックレートで除算することを忘れましたか? – kkrambo

+0

はい、私は「実行時間」を意味しますシステムタイマーのカウンター値は同じ数のティックを数えます。異なる動作周波数では、システムタイマのカウンタ値は同じです。はい、私はカウンター値を分割しませんでした。もっと詳しく教えてください。 – waq

+0

動作周波数を変更すると、システムタイマのティックレートも変更されていませんか?したがって、元のティックレートでの_n_ティックは、変更されたティックレートでの_n_ティックとは異なる時間量です。あなたのカウンターは同じ数のダニを数えましたが、それは時間が異なります。 – kkrambo

答えて

0

これは古い質問ですが、これをシステムで「リアルタイム」に実行する必要がない場合は、機能を開始して終了するときにポートピンを切り替えて、オシロスコープを使って測定します時間。私はあなたがソフトウェアテストのためにこれをしたいと思っています。

あなたはそれを(アプリケーションコードで)「リアルタイム」を行う必要がある場合は、マイクロコントローラ・クロックの期間によってあなたのSTMタイマー値を乗算する必要があります。関数の実行のタイマ値は、マイクロのクロック周波数に関係なく、常に(例外を除いて)同じである必要があります。 (すなわち、タイマーの速度は、コードの実行速度が変化するのと同じ方法でクロック周波数とともに変化します)

関連する問題