No.6ベストアンサー
- 回答日時:
たとえば4000Hzの音を出す時1秒間に4000回のON/OFFを繰り返す必要があります、(計8000回)
これをプログラムで組むと、ポートのON,1/8000秒待つ、ポートのOFF,1/8000秒待つ、のループを音を鳴らしている間繰り返すことになります
これでは音を出してる間他の仕事が出来ません、TVゲームなら音を出してる間画面が止まることになります
これを割り込み処理にすると、メインプログラムで音を出すフラグをセットすれば、後は自動的に音が出るようになり
メインプログラムは他の仕事に専念できます、(マルチタスク処理)
キースキャン、RS232受信、LEDのダイナミック表示、これらを割り込み処理で行わないと
キー入力が遅い2重入力、RS232受信データの取りこぼし、LED表示がちらつく等の弊害がでます
パソコンでは、Windows及びサブCPUが処理するのでユーザープログラムが意識するすることはありませんが
組み込みマイコンでは自前で処理しなければなりません。
No.7
- 回答日時:
>それはifで条件を書いて別の関数を呼び出すことと
>かわりはないと思っています。
特定のハードウェアイベントに対するハンドラを
実行するには、割り込みを使うか、
ハードウェアイベントが起きたことを検査する
処理を常時実行するしかありません。
後者は大きなCPUパワーを食う上、応答が遅いのです。
No.5
- 回答日時:
単純な例だと、リセットボタンを押したら、何を実行している途中でも、とにかく再起動処理にジャンプする、という
if 文とかで待っていなくても、CPUにハードウェアからの信号が来たときに、強制的にそちらの処理を優先する、という仕掛け(interrupt:割り込み)なのです。
No.4
- 回答日時:
逆に言うと、割り込みがあるからハッキングされるのかもしれません。
あなたが仕事中、AさんとBさんの用事だけチェックするようになっていたら、
Cさんが何を言ってきても無視するだけ。
拳銃強盗も、ナイフを持ってきても動じることもなく、仕事ができる。
Cさんを無視するってことは、あなたが新しいソフトを
インストールすることはできないということです。
新しいソフト(Cさん)がCPU(あなた)を使うことはできないのですから。
No.3
- 回答日時:
考え方ですが、
あなたがなにか仕事をしているとします。
Aさんがなにか言ってきました。その作業をします。
電話がかかってきました。応対します。
この作業を、割り込みを使わないですると、
あなたが仕事をしていますが、
Aさんの用事はないですか?
Bさんも用事はないですか?
Cさんも用事はないですか?
電話はかかってきていませんか?
というのを延々チェックしながらの仕事になります。
こんなのは仕事になりませんよね。
もっと違うことで考えましょう。
あなたは寝ています。
7時になったら目覚ましが鳴ってあなたは起きます。
↓
あなたは寝ていますが、目覚ましは鳴りません。
でも、起きるのは7時ですので、常に時間を気にしながら寝ます。
なんてことはできないですよね。
火災になって飛び起きることもあるでしょうし、地震に揺られることもあるでしょう。
いちいちチェックしてられませんよね。
コンピュータってのは人が作っています。
人がしている処理を模して作るのが鉄則になっています。
なぜか?異常が起きた時、人が考えつく原因に留めるためです。
異常が起きた時、異星人が作ったようなコンピュータでは対処できません。
No.2
- 回答日時:
if文で条件判断するとしたら
判断して処理が実行できるのはある一瞬でしかない
その他の処理を実行している最中はずっと要求が待たされてしまう
例えば、キーボード入力を割り込みではなくif判定で行ったとすれば
キーを押してもなかなか反応せずに、忘れた頃にキー入力される
そんなキーボード入力は使い物になるだろうか?
マウスだって同じ、カクカク動くマウスカーソルは使いにくいねぇ
割り込みを使えば、他の処理を実行中であっても何か処理が必要なイベントが起きれば即座に必要な処理を実行できる
No.1
- 回答日時:
もし、if でやろうとすれば
loop:
if 「割り込み信号」=ON then 処理
goto loop
みたいなループを作るとか
処理1
処理2
処理3
というプログラムがあったとしたら
処理1
if 「割り込み信号」=ON then 処理
処理2
if 「割り込み信号」=ON then 処理
処理3
if 「割り込み信号」=ON then 処理
と判定用ifを大量に入れるとか
というように、大量のifが必要となります。
割り込みを使うことで、このifにかかるコスト(時間、プログラムに使用するメモリ、等)を抑えることができます。
特に、前者の待ちループですが、専用の待ち命令が用意されていたり、HALT/STOP等のCPU停止命令(停止中も割り込みは有効)で代用したりできることが多いです。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(Microsoft Office) エクセルの関数について 4 2022/07/30 16:42
- Excel(エクセル) Excelで、別シートの表のステータスに伴った動的な自動転記をしたいです。 2 2023/06/14 15:56
- Excel(エクセル) エクセル IF か VLOOK か 数式を 教えて下さい 2 2023/07/09 17:59
- 教育ソフト・学習ソフト vbsで分割した値をそれぞれの変数に 1 2022/10/17 19:52
- その他(お金・保険・資産運用) 至急!【Wolt】各メニューの価格設定の簡単な計算方法 3 2023/03/05 11:58
- PDF いきなりPDFで文書の切り取り 3 2022/10/29 13:25
- 大学・短大 C言語線形リストの問題です 3 2022/12/22 00:45
- Visual Basic(VBA) 1つの入力フォルダの値を読み込み、3分割をして新しい変数に代入する方法を教えていただきたいです。 読 4 2022/10/17 20:52
- Visual Basic(VBA) ExcelからAccessのテーブルに書き込む時に時間がかかる 1 2022/10/14 20:38
- 郵便・宅配 クロネコヤマトについて、持ち込み発送を簡単に済ませるには?(集荷と比べて面倒) 3 2023/02/08 23:58
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
CPUの処理量を減らすコーデ...
-
優先度順方式とプリエンプショ...
-
PICでタイマー割込み(mikroC V...
-
マイコン C言語 割り込み処理...
-
C言語について(PWM)
-
irqbalance って
-
PICの割り込み機能
-
インバウンドで迷惑している人...
-
(H8マイコン)タイマ割込で変更...
-
割り込みについて
-
PICで既定の時間数ループを...
-
割り込みの衝突
-
音声ファイル再生時のフリーズ
-
PIC16F84AのRBポート変化割り込...
-
picタイマ0割り込みについて
-
CPU負荷率の安全な上限と計...
-
駅のトイレでナイチンに邪魔さ...
-
H8マイコンで割り込みが任意の...
-
順番待ちで並んでいる時、割り...
-
VB6でSendKeyを利用したTab移動...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
インバウンドで迷惑している人...
-
pic 複数の割り込み関数 切り分...
-
スーパーのレジで並んでいたら...
-
ショッピング
-
Excelでタイマーの一時停止する...
-
電車で待機列の割り込みについ...
-
CPUの処理量を減らすコーデ...
-
C言語でPICマイコン開発
-
【組込み】割り込み中のstatic...
-
Amazonfireタブレットにわから...
-
マイコン C言語 割り込み処理...
-
USB機器からのデータ受信による...
-
一定時間操作がなかったら、と...
-
VB.net 割り込みの禁止
-
ウォッチドッグタイマ(WDT)の...
-
電車乗車時、並んでいるのに割...
-
USJでの割り込み
-
VB6でSendKeyを利用したTab移動...
-
PICでのプログラムによるチャタ...
-
割り込み中に例外異常
おすすめ情報