楽天市場
[無料でホームページを作成] [通報・削除依頼]

PIC10F322専用 周波数カウンター

データシートのNCOの部分を眺めていて、ふと思いつきました。

NCOは数値制御オシレータと和訳されており、発振とか分周のイメージが頭のなかに強くあったのですが、実態は20ビットのカウンターです。

「これを周波数カウンターに使用すれば、桁の精度も得られ、プログラムも簡単になるんじゃね。」


ということでやってみました。

<回路図>
img_20130530-153149.jpg


<考え方>
1.NCOの外部入力として許されているNCO1CLKはRA1に接続されるため、これを使うとクリスタルオシレーターの接続ができない。 入力信号をCLC回路でスルー(+バッファリング)させ、CLCの出力をNCOに入力する。
    img_20130530-153313.jpg

2.CLCは常時ONとし、NCO機能のON/OFFを1秒間のゲートで操作する。

3.ゲート処理の中でNCOのオーバーフローNCO1IFを検出しカウント値に加算する。

4.データは約1秒おきにシリアルポートに出力する。 割り込みは使用しない。


<クリスタルオシレーターをRA0に入力したときの結果(RA1とRA0をショート)>
img_20130530-153444.jpg


2013.11.09 追記
本ページに記載のソースコードを削除し、以下にアップしなおしました。
ダウンロード先

Bequest333のページ(別館)

http://hp.vector.co.jp/authors/VA058115/

https://drive.google.com/file/d/1CRjzhnHvvQLvD7zVB66IaMFHyJdKdRNn/view?usp=drivesdk
































 

 





.