2

秒とミリ秒の解像度のタイミングを出力しようとしていますが、使用してGetSystemTime()います。

これは私のコードです:

GetSystemTime(&datetime);
RETAILMSG(1,(_T("Time After Data Sent to USB: %d:%d\r\n"), datetime.wSecond, datetime.wMilliseconds));  

を使用してプラットフォーム ビルダーのデバッグ出力に出力しRETAILMSG()ますが、最大で秒の解像度しか出力できないため、ミリ秒が空白の48:0のようなものが表示されます。

苦情がないので、なぜこれが起こっているのかわかりません。の実装と関係があると思いますRETAILMSG()

ミリ秒単位の解像度を達成するために使用できるこれまたは代替の修正はありますか?

ありがとう、

編集: Windows Embedded Compact 7 で開発しています

4

2 に答える 2

5

ミリ秒は空白です。

なぜこれが起こっているのかわかりません

Embedded CompactのドキュメントにGetSystemTime()は、その問題に関する次の警告が記載されています。

ミリ秒の粒度は、ハードウェア プラットフォームでサポートされていない場合があります。この関数の呼び出し元は、2 番目以上の粒度に依存するべきではありません。

于 2015-08-11T20:58:40.630 に答える
2

Windows では、クロックの分解能は約 15msです。

ミリ秒単位の分解能が必要な場合は、10µs 未満の範囲の時間を測定できる高性能クロックがあります (こちらを参照してください: msdn での高分解能タイムスタンプの取得)。

于 2015-08-11T20:11:08.677 に答える