PIC初心者用掲示板

PICの初心者用の質問箱です。
何でもお気軽にどうぞ!

■最新ツリー一覧

□このツリー付近のツリー一覧

★新規ツリー作成

◆ 5675. 16F628A [Billy the Kid2005/07/31 16:56


5675. 16F628A [Billy the Kid2005/07/31 16:56
16F628Aは内部にカウンタ/タイマーが3個有るのでこれらを利用して周波数カウンタを作りました。利用したのはTMR0とTMR1です。TMR0にはパルス間隔2mSのパルスを入れます。250個数えると0.5秒,125個ならば0.25秒のゲートを作ることが出来ます。これでTMR1のゲートを制御します。TMR1に入れるのは測定したい波形で2倍にして入れます。こうすれば0.5秒ゲートの時はそのままで周波数が計れますし,0.25秒の時は測定後,RLFでシフトすれば良いはずです。不思議なことが起こったのはこのゲートの切り替えを行うと最初の1回だけは特定の周波数範囲でおかしな測定値になることです。私の実験では2.763KHzから2.775KHzの範囲でおかしな事が起こりこれを外れると起こりません。おかしな事が起こっても2回目以降は正常なのです。試しにTMR0のカウント値は固定にしTMR0に入れるクロックを外部で切り換えてみました。2mSと1mSのパルスで、TMR0のカウント値は250個に固定します。この時は問題が起こりません。TMR0のカウント値を変えると何かTMR1に影響が有るのでしょうかね。不思議な体験でした。なお,おかしな事が起こる周波数範囲はたまたま手元の発信器の周波数範囲の問題で,他の周波数に付いては調べていません。