(その1)で周波数カウンター

 (その1)を使って周波数カウンターを作りました。

 この手のマイコンで周波数カウンターを作ろうとすると、内蔵のカウンターと割り込みを使って行うのが常道ですが、(その1)には、RTCがありますから、これとWDTを使ってポーリング式で作ってみました。

 こうすることで、H8sのフラッシュROMを使わず、またモニターなどに依存せずプログラムすることができます。

 原理は、RTCの5番ピンに0.5Sの基準クロックを出し、この間、WDT1で測定対象となるパルスをカウントさせようというものです。

 WDTは8ビットのカウンターとして利用できますが、これではさすがに桁が足りませんから、カウンターをチェックしながらオーバーフローを検出し、上位桁のカウントをソフトで行うことにしました。

 RTCのINTA(P92)とコネクター3に端子が出ているP96を使うことで、ハード的には何の加工も必要ありません。P96は、WDT1のサブクロック入力端子となっていますので、まさに最適です。

 

  これで、概ねプログラム出来ますが、私は、サブクロックイネーブルフラグで苦労させられました。P96をサブクロック入力端子として利用する場合は、LPWRCR(H'FFFF85)のBit4 EXCLEに1をセットする必要があるのですね。ご注意を。

    周波数カウンターソース(H8s/2144用アセンブラー) 

  実行形式ファイル(その1用。Hex形式。0x200000より実行)

 実行形式のファイルをダウンロードして、ファイル名から“.txt”を削除してから利用してください。

 適当なモニタープログラム等で(その1)にダウンロードし、0x200000から実行すると、周波数カウンタープログラムが動作するはずです。コネクター3の端子P96が入力端子になっています。

 どこまで計れるか試していませんが、2.5MHzぐらいはいけるのではないかと思います(5MHzサンプリングで通る範囲となります)。とりあえず、RTCの32KHzは計れています。

 

 


[ご注意]
・このページの記載事項については,一切無保証です。