本文へ移動
サポートシェアリングソリューション
OKWAVE Plus

このQ&Aは役に立ちましたか?

締切済み
※ ChatGPTを利用し、要約された質問です(原文:PIC(16F84A)を使用して周波数判定を行い…)

PIC(16F84A)を使用した周波数判定プログラムの作成方法

2023/10/15 22:31

このQ&Aのポイント
  • PIC(16F84A)を使用して周波数を判定し、出力を制御するプログラムをC言語で作成する方法について説明します。
  • 具体的には、100Hz以上の周波数が入力された場合にはHIを出力し、それ以外の場合にはLOWを出力するような判定を行います。
  • このためには、周波数の判定を行う関数を用意し、それを使って入力された周波数を判定し、適切な出力を行うプログラムを組む必要があります。
※ 以下は、質問の原文です

PIC(16F84A)を使用して周波数判定を行い…

2008/11/20 22:35

PIC(16F84A)を使用して周波数判定を行いたいのですが…。

PICの16F84Aを使用し、周波数を判定して出力としてHIを出力する、LOWを出力するなどの判定を行うプログラムをC言語で行いたいと考えております。
例として100Hz以上の周波数が入ってきたときに、HIを出力したい場合、どういうプログラムを組めばよいのでしょうか?
周波数を判定する関数等はあるのでしょうか?
よろしくお願いします。

回答 (2件中 1~2件目)

2008/11/26 01:41
回答No.2

こんばんわ!グッチーです!
PICを勉強中のことで!?私も初心者ですがこの手のプログラムは先駆者の御仁方々がたくさん製作されています。100Hz程度ですと色々な手段がありますが、もっと周波数が上がると手段も使用するPICも制限されることがあります。
簡単な方法を言葉でいえば(100Hzを正確に作り出せる回路がある前提)、1秒間の入力パル数が f<100、f=100、f>100 なのかを判定し、それらに応じて出力を出してやる!・・・と言ったところでしょうか?もう少し具体的には、例えばTMR0を使って1秒を作り出します。10MHzクロックですと、100ns(10MHz)*4*256(プリスケラ)*256(タイマー値)=26.2144msになります。これを約38回カウントしてやればおよそ1秒になります。その間にカウントされるパルスを計測する・・・しかし84A使う限り肝心の周波数をどの様にカウントするかは、ハードウェアとソフトウェアの難度があります。参考になるサイトを下記に示します。
http://www.picfun.com/appframe.html

関数も含め、そのものずばりのプログラムはないと思います。参考になるキーワードは「周波数カウンタ」「TMR0」「TMR1またはTMR2」、「CCP」などがあります。
またPIC16F84A以外に、PIC16F648Aなどを使えば、値段も安いし(300円→200円:08年11/26現在調)、ピンコンパチで、84Aより多くの機能が追加されていて、タイマーも3本になり、プログラムも簡単になります。(上記の悩みは解消します。)
参考サイト
http://www8.plala.or.jp/InHisTime/index.html
http://members3.jcom.home.ne.jp/guccitech/Mycon-Koubou.html

頑張ってください。

お礼

2008/12/05 04:58

わざわざ、回答ありがとうございました。タイマー0を使用して、無事プログラムを完成させることができました!!

質問者

このQ&Aは役に立ちましたか?

この質問は投稿から一年以上経過しています。
解決しない場合、新しい質問の投稿をおすすめします。

質問する
2008/11/20 22:53
回答No.1

毎度JOです。
本来であればF-Vコンバータとコンパレータで実現できるのですが、
マイコンで行うのであれば、入力信号がロジックである必要があります
サインウエーブのような信号を取り込む為場合、コンパレータなどでロジック信号に変換する必要があります。

入力信号のエッジからエッジを検出し、この間の時間が(100Hzであれば10mS)以内で変化するかを観測します。

しかしプログラムで行うには上限があります、マイコン内のタイマーをプリスケラなど使用せず高速動作させて、
エッジ検出~エッジ検出とその間の判定プログラムステップが30あったとすると、
マイコンのクロックに10MHzを使用したとしても、10000000/4/30≒83KHz以上の信号は判断出来ません、
C言語で行う場合は、アセンブルファイルでステップ数をカウントするか、シミュレーションでステップ数を計測する必要があります。

お礼

2008/11/24 17:45

わざわざ回答ありがとうございました。
まだ、PIC初心者でなかなか理解することができないのですが、少しずつ理解して行こうと思います。

質問者

お礼をおくりました

さらに、この回答をベストアンサーに選びますか?

ベストアンサーを選ぶと質問が締切られます。
なおベストアンサーを選びなおすことはできません。