2016-05-17 4 views
0

問題:私は使用しているマイクロコントローラが16ビットのエンコーダ値を返すことしかサポートしていませんが、私のアプリケーションでは32ビットが必要です。 質問:返された16ビットのカウンタ値に基づいてティックを再カウントするために、自分自身の32ビットカウンタを実装する/持っていることはありますか?16ビットFTMカウンタに基づいて32ビットカウンタを実装する方法は?

答えて

1

ほとんどのカウンタは、カウントをゼロにするか、すべて1にカウントしてリロードします。ロールオーバー/リロードごとに可変カウントがあります。

8000000 = 0x7A1200とします。タイマーカウントを256にして、0x7A12ロールオーバーに達したときに何回ロールオーバーして何回カウントすれば800万になるかをカウントできます。

このようにするには、ロールオーバー/リロードを逃してはいけません。たとえば、リロード/ロールオーバーごとに0x7A12をカウントして、256回のロールオーバー後に800万にカウントします。リロード/ロールオーバーが行われていたことを確認するために、コードの期間をはるかに長くします。

関連する問題