
No.2ベストアンサー
- 回答日時:
PICは(Peripheral Interface Controller)で良いですね。
外部入力を判断するには(1)専用入力端子を使うか、それがなければ(2)割り込みが使える端子を使うか(3)通常の入力端子をポーリング(ソフトのタイミングで見る)かのどれかを使うことになると思います。
(1)はパルスの入力やパルス幅、その他の機能が考えられますがIC自体が高価にもなります。(2)はレベルの割り込みと、エッジの割り込みがあり、(2)(3)共にノイズ等による無効パルスや有効パルス中のエッジ発生や反転を予測して、有効/無効パルスの判定(反転を認識してから一定の時間で再認識)をしないといけないでしょう。
後はダウンカウントかアップカウントの10回カウンタでゼロまたは一致にてパルスを出力すればよいと思います。タイミングを計るのは内部タイマを使うか、あまり勧めませんがソフトのループ間隔で時間を決めるソフトカウンタという方法もあります。
回答ありがとうございます。
ごめんなさい。初心者すぎて、わかりませんでした。
「割り込み」という言葉が先ほども出てきたので調べてみましたがよくわかりません。
http://www.picfun.com/pic08.html
を見ました。
「レジスタ」「ビット」の値を色々いじっているという印象は受けました。ただ、「レジスタ」「ビット」については理解できていません。
わかりやすく解説してくれている、URLを紹介していただけるとありがたいです。すみませんがよろしくお願いします。
No.3
- 回答日時:
図に示された解説がわかりやすいでしょうが
http://www.necel.com/ja/faq/mi78k/__78int.html#0 …
でわかりますか?
CQ出版の本などを読んだ方がわかるかもしれません。
割り込みとは、通常のソフトが進んで(走って)いる状態で、何かの事象が生じたら、即座にその処理のルーチン(プログラム)に移動して処理をし、処理後に、割り込み前の場所に戻る一連の動作を言います。つまり、通常の処理に割り込むのです。文章では限界があり、webでも説明を簡単にされている所は内容なので?まずは図書館で本を借りて見るか、本を購入するかで理解した方が良いと思います。
No.1
- 回答日時:
私も電子工作初心者です。
PICの機能であるタイマを使えば実現できると思います。
タイマは内部クロックでも外部クロックでも動作させることができ、
外部クロックを選べば、カウンタや分周期として使うことができます。
例えば8ピンICであるPIC12F629のタイマ0は8ビットタイマなので、
初期時にF6hと書き込んでおけば、10回目のカウントで値がFFhから00hと
変化し、そのときにオーバーフロー割り込みが発生します。
割り込み処理ルーチンでは、「数ms後にパルスを出力」の数msを
NOP命令などで作り出し、その後に出力すればいいでしょう。
早速の回答ありがとうございます。
私はさらに初心者です…。まだ実際に自分で考えて作ったことはありません。本を見ながら、書いてある通りに作ったことはありますが。
ribisiさんの言っていることがあまり理解できないようです。
分かった事と言えば…「私の要求していることができる」ということぐらいです…。
一応調べてみました。
ちなみに16F84を使っています
タイマ:???。サイクル時間(=4/クロック周波数)のことでしょうか?普通は水晶振動子等を付けるところに、パルス信号を入力するということでしょうか?
タイマ0は8ビットタイマなので初期時にF6h:8ビット=256で、16進数で2桁分に相当する。8ビットタイマということは256でオーバーフローする?だからFFhの次は00hとなる?
オーバーフロー割り込み:?。わかりませんでした。
NOP命令:何もしない。何もしない時間を数ms、何とかして作るということでしょうか?振動子を使っていない場合のサイクル時間はどうやって決まるのですか?
すみません。初心者すぎますね。答えるのがメンドクさかったら、参考URLだけでも教えていただけると助かります。
ただ、電子工作室はなんかわかりにくかったです。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
画像生成AIのプロンプトの作り...
-
pythonでのローカルファイルか...
-
vba 正規表現について教えてく...
-
if関数とは?
-
プログラミングに興味があるの...
-
uwscでPauseキーが押されたら、...
-
Fortranでシステム時刻をカレン...
-
数行削除してコピーするbatファ...
-
秀丸エディターでの置き換え
-
vba クリップボードクリアにつ...
-
Geminiフォーム 画像生成で 人...
-
Python 3.12.2 か一番最新のパ...
-
AIがプログラムする時代のプロ...
-
pythonについて(初心者です)
-
pythonでhtmlファイルの指定文...
-
プログラム上での行のマージ方法
-
覚えることが少ないプログラミ...
-
従業員が1名だけのSierっている...
-
アルゴリズムとコードとは何で...
-
IT業で開発をされてる方々に質...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
PICの入出力切り替えの時間がプ...
-
16 bit timerで1秒を計る
-
arduinoで信号間の時間を計測し...
-
PICでパルス数をカウントし、カ...
-
PICでパルス数をカウントする方法
-
H8/3052 ディップスイッチについて
-
PICでスピードメーターを作...
-
SHマイコンについて
-
H8/3048 マイコンのプログラム...
-
C言語によるウェイト
-
プログラム言語
-
0xffffとは?
-
8ビットのデータの、先頭ビット...
-
ライン数とステップ数の違いは?
-
アセンブラからC言語に変換する...
-
レジストってなんですか?
-
シーケンス制御についての質問...
-
シーケンサのデータレジスタD...
-
C言語で128bitの2進数のビット...
-
一般のソフトで画像を扱う場合...
おすすめ情報