制御部の検討と製作(Page 2 / 2)

■ 周波数カウンタを制御するためのソフト


◇まずはメインルーチンから・・

早速制御ソフト編に入りたいと思うが、各部分の詳細を書き始めるとどうしても長くなりがちなので、要点だけ 「サラッ」と説明させていただくことにしよう。 あと、詳細がご覧になりたい方は、ソースファイル中のコメントを参照して欲しい。


メインルーチンと割り込みルーチンのフローを書いてみるとこんな感じだ。 ざっくりした単位でしか書いていないので これを見ただけではイメージは掴みにくいかもしれないが、まぁこんなもんだと思ってご覧を。

さて、この制御プログラムの中で最も重要な意味を持っているフラグで カウント状態フラグ というものを設定している。 今カウントのまっ最中なのか、カウントが終了して値が準備できているのかなど、状態を数値で表しているのだが、 メインルーチンではフラグに関連するワークエリアにデータをセットした後フラグを変更、割り込みルーチンの中で処理が行われて フラグが更新されるのを待てば良い という流れに組み立ててある。
ダイナミック点灯の処理についても、表示タイミングを示すフラグが割り込みルーチンの中で更新されるので、 メインルーチンではループ中でフラグをチェックし、表示用ワークから一桁分の数字を表示してまたループに戻るという処理を 延々繰り返すことになる。
主要な処理はメインルーチンと割り込みルーチンで 処理内容の役割分担 が決まっていて、フラグを参照しながらお互いに通信し合っているというイメージが適当かな。

ということで、主要処理のフローを書いておくので、ソースファイル中のコメントをご覧になられる前にでも目を通していただければ幸いだ。



◇公開する制御ソフトについて・・

制御ソフトについては、このページの最後に ZIP圧縮したファイルへのリンクを貼り付けておくので、必要な方は そこからダウンロードして欲しい。 圧縮ファイル中に簡単な説明をテキストファイルで入れているので、そちらを 参照の上正しくお使いいただきたいと思う。

あと、実際の表示内容について簡単にご説明してこの項目は終わりたいと思う。
しかし・・・ PICで桁上がりや桁借りのある複数バイト演算はしんどいなぁ (^^;
電源投入
オープニングメッセージ Fcount16F84 $1-00 を表示して計測状態に移行。

Normalモード
0を表示。
99,999Hzまではそのまま表示。 DPが KHzの場所に表示され、31.5KHzなら 31.500と表示。
100KHz以上はスクロールして上位優先で表示。 DPが KHz、MHzの場所に表示されて点滅し、表示スクロールスイッチを押すと 下位の表示に切り替える。 例えば 2.4576MHzなら 2.457.6(DP点滅)と表示し、スイッチ押下で 57.600(点滅解除)となる。

Highモード
0.0を表示。
9.9999MHzまではそのまま表示。 DPが KHz、MHzの場所に表示され、2.4576MHzなら 2.457.6 と表示。
10MHz以上はスクロールして上位優先で表示。 DPが KHz、MHzの場所に表示されて点滅し、表示スクロールスイッチを押すと 下位の表示に切り替える。 例えば 16MHzなら 16.000.(DP点滅)と表示し、スイッチ押下で 6.000.0(点滅解除)となる。

■ 資料はこちら
制御プログラム (PIC16F84A-20 ソースおよびヘッダ・HEXファイル: ZIP圧縮)

2002/11/17 Yutaka Kyotani

トップメニューへ
蛍光表示管を使った周波数カウンタ メニューへ
前のページへ
次のページへ (準備中)