0
問題:私は使用しているマイクロコントローラが16ビットのエンコーダ値を返すことしかサポートしていませんが、私のアプリケーションでは32ビットが必要です。 質問:返された16ビットのカウンタ値に基づいてティックを再カウントするために、自分自身の32ビットカウンタを実装する/持っていることはありますか?16ビットFTMカウンタに基づいて32ビットカウンタを実装する方法は?
問題:私は使用しているマイクロコントローラが16ビットのエンコーダ値を返すことしかサポートしていませんが、私のアプリケーションでは32ビットが必要です。 質問:返された16ビットのカウンタ値に基づいてティックを再カウントするために、自分自身の32ビットカウンタを実装する/持っていることはありますか?16ビットFTMカウンタに基づいて32ビットカウンタを実装する方法は?
ほとんどのカウンタは、カウントをゼロにするか、すべて1にカウントしてリロードします。ロールオーバー/リロードごとに可変カウントがあります。
8000000 = 0x7A1200とします。タイマーカウントを256にして、0x7A12ロールオーバーに達したときに何回ロールオーバーして何回カウントすれば800万になるかをカウントできます。
このようにするには、ロールオーバー/リロードを逃してはいけません。たとえば、リロード/ロールオーバーごとに0x7A12をカウントして、256回のロールオーバー後に800万にカウントします。リロード/ロールオーバーが行われていたことを確認するために、コードの期間をはるかに長くします。