Windows CE で 100 マイクロ秒未満の精度でスリープすることは可能ですか? ジッタが少ないほど良いです。理想的には、1 桁のマイクロ秒の応答時間が必要です。
私たちが本当に必要としているのは、ジッターが非常に低い 5 ミリ秒のタイマーです。そのため、サイクルは徐々にドリフトします。
これが不可能な場合は、その情報も非常に役立ちます。
Windows CE で 100 マイクロ秒未満の精度でスリープすることは可能ですか? ジッタが少ないほど良いです。理想的には、1 桁のマイクロ秒の応答時間が必要です。
私たちが本当に必要としているのは、ジッターが非常に低い 5 ミリ秒のタイマーです。そのため、サイクルは徐々にドリフトします。
これが不可能な場合は、その情報も非常に役立ちます。
この MSDN の記事には、WinCE で 500us のタイマー割り込みを設定するためのコードが含まれているため、完全に可能です。
お使いのバージョンの WinCE に縛られていない場合は、標準ハードウェア上で Windows と並行して実行される RTOS を提供していると主張するTenasysを調べることをお勧めします。
QNXについても良いことを聞いたことがありますが、その製品も使用したことがありません。ただし、Windowsと互換性があるとは思いません。
不可能です。デスクトップでも不可能です。通常のオペレーティング システムは、この方法では機能しません。
4 ミリ秒ごとに正確に起動する必要がある場合、または運が悪い場合。あなたが本当に必要としているのが、毎秒正確に 250 回発射するものである場合、それはより実行可能かもしれません。後者が必要な場合は、アプローチを提案できます。
スリープする必要があるのがバッテリ/スレッドの問題ではなく、正確なタイミングの問題である場合は、Windows CE デバイスの「パフォーマンス カウンタ」を使用できます。XScale および Qualcomm CPU では、これは内部チップ タイマーであり、サブ 1 ミリ秒の粒度があります。古い OMAP および Samsung プロセッサでは、performancecounter API は 1 ミリ秒のシステム ティックを通過しており、多くのジッタがあります。
ポンド
ジッターを修正するには、高解像度タイマーにアクセスする必要があります。あなたが持っているCPUには1つあるかもしれません。そうでない場合、割り込みコントローラは可能性があります。
最も簡単な方法は、リアルタイムで Linux を使用し、そのライブラリに WINE を使用することです。定期的なスレッドが必要です。