新製品の紹介(プチ連載です)
周波数カウンタ組立キット
〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜
たまにはちょいと息抜きで小品も作ってみたいものです。
簡単にチョイチョイと…。
でも、なかなかそうは簡単にはいかなくて、いつものごとく回を重ねてしまうことになるのかも…。
〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜
[第44回]
●プログラムの説明(続き)
前回のプログラムの説明の続きをあともう少し。
スイッチが押されるとRC0が0になります。
プログラムではRC0の状態を16msに1回確認しています。
RC0=0を検出するとそれまでのカウント値を7セグメント表示用レジスタに移しますが、下位8ビットの値は74HC590が保持していますから、先にそれをfcntr0に読み込みます。
実はもともとの回路を変更して今回の回路にしているため、ちょっと苦しい端子の使い方をしています。
74HC590の値はRC1〜RC7に読み込みますが、ビット0だけはRC0ではなくてRE3から読み込みます。
74HC590から読み込む値については注意する点が1つあります。
74HC590はキャリー出力をカウントFFからカウント0になったときにするのではなくて、カウントFFになったときにするようです。
最初はこのことがわからずにかなり悩みました。
74HC590からキャリーが出されると、それによって割込みプログラムが実行され上位カウンタfcntr1〜fcntr3がカウントアップされます。
もしもその直後にスイッチ入力を検出すると問題が発生します。
74HC590から下位8ビットの値を読み込んで、それがFFであるときにはカウントデータは実際の値よりも256カウント多くなってしまっています。
プログラムでややこしいことをしているのは、その場合の補正をしているのです。
周波数カウンタ組立キット[第44回]
2015.11.4upload
前へ
次へ
ホームページトップへ戻る