• ベストアンサー

割り込みとは?

マイコンの「割り込み機能」に関する質問です。 半年ほど前からマイコンを使ってラジコンヘリをいじくって自律制御みたいなものをやろうとしてまして、当初は「マイコンって何?」のレベルだったのですが、ようやくいろんなことができるようになってきました。 具体的にはH8や、MC9S08QG8(フリースケール社)を使って、LEDの点灯から始まり、AD変換、DCモータのPWM制御、サーボコントローラを駆動するためのシリアル通信などができるようになりました。 でも、いまだに使いこなせないのが、「割り込み」というものです。 今のところ、必要性を感じていないのですが、「割り込み」ってそもそもどういうときに使う必要が出てくるんですか?使うと、具体的にどんなことができるんですか?教えてください。 ちなみにC言語しかわかりません。

質問者が選んだベストアンサー

  • ベストアンサー
  • gonbee774
  • ベストアンサー率38% (198/511)
回答No.1

普段は別のことをやっていて、何か外部要因があったときにそれを(優先的に)処理するために使われます。 #普段べつのこと、とは何もせず待機のためのループを回っているだけ、という事もあります。 たとえばタイマー割り込み。 ある一定時間ごとにさせたい動作がある場合、使います。 (AD,DA変換で、サンプリング速度を規定するために通常つかっているのではないかと思っていますが…) また、シリアル通信はどのようにやっておられるのか解りませんが、USART(シリアル通信を行うハードウエア)が1バイト処理する毎に割り込みを発生させ、それによりCPUがデータを受け取ります。 #ほかの処理よりも優先させないと、間に合わなかった場合データが無くなってしまう可能性がありますね。 いつ入力されるかわからないキーボード入力なんかも、割り込みで処理します。(作り方によってはポーリング(ループ内で入力を待つ)方式でもできますが) >ちなみにC言語しかわかりません。 もし、ライブラリ等をお使いなら、ひょっとするとその内部で割り込みが使われてるかもしれませんね。

SY2525
質問者

お礼

すごく丁寧な回答、ありがとうございます。 最後の行でおっしゃっている通りかも知れません。ADもシリアルも別に割り込みというのを意識して使っていなかったので。 知らぬ間に使っていたのかもしれません。 ただ、だからこそ、あるレジスタで○○割り込みをディセーブルとかイネーブルだとかを指定するときなんかは、さっぱりわからずいつもディセーブルにしてしまってます。それでも動くからいいと思ってしまってるんですが。。

関連するQ&A

  • DCモータを駆動する方法

    DCモータを駆動するにあたって,駆動回路を組もうと考えているのですが,モータドライバを使った駆動回路もあればトランジスタを使った駆動回路もあり,どちらを組んだらよいのか分かりません.また,二つの違いもよく分かりません.ぜひアドバイスをお願いします.ちなみに目的はDCモータをPWM制御で速度制御するための駆動回路です.

  • arduinoによるDCモータ駆動について

    arduinoによるDCモータ駆動について 皆さんこんにちは. 私は現在,arduinoというマイコンボードからDCモータを制御しようと しています. 基本的には上手く動いているのですが,いくつかその挙動で 不可解なことがおきています. 挙動1:モータ駆動開始してしばらくは,負荷側を等速で動かせない (ウォームアップのようにしばらく(ゆっくりと)動かしていると,順調に動くようになる) 挙動2:ある程度使用していると,モータが駆動できなくなってしまうことがある (負荷を外しても,PWM音は聞こえるが,モータは回転しない.一度この状態になると, ずっとこのまま) マイコンボード:Arduino Duemilanove モータドライバ:18v15(Pololu社) ギヤードモータ:380K75 電源:ACアダプタ(12V-5A),電源ジャックに供給 制御:PWM制御 挙動1については現在は誤魔化しながら使用していますが, 挙動2に一度なってしまうと,ずっとそのままなので困ってしまっています. リセット等をかけても改善せず,仕方ないので現在は新しいボードに交換することで 対応しています. (ATmegaチップの交換も試してみましたが,改善しませんでした.) おそらくマイコンボードのチップ以外のところが破損していると考えられますが, これにはどのような原因が考えられるでしょうか? また,これを未然に防ぐ方法などは,ありますでしょうか? 当方は電気回路等に関して未熟ですので,皆様のお力をお借りできたらと思います. よろしくお願いします.

  • アナログサーボを3MHzで駆動可能か?

    H8/3048one(24.576MHz)のマイコンボード(YellowSoftのYH3048-3)の、PWMを利用して、アナログサーボを制御しようとしているのですが、このマイコンは「φ/8」でしかPWMの周波数設定ができません。なので、約3MHzでサーボを制御しようと思うのですが、アナログサーボを3MHzという高い周波数で制御できるものでしょうか? また、外部にプリスケーラなどのICを増設することで可能であれば、その方法などを教えてほしいと思います。

  • DCモータのPWM制御について

    卒業研究でロボットを製作することになりまして、DCモータのPWM制御について知りたいのですが、PWM信号をマイコンから出力するかICを使って出力させるかどうかも決まっていません.どちらの場合でも使用しやすいICや回路例などを示してくれると非常に有難いです.

  • マイコンによる電流制御

    とても勉強になるサイトなので、どんどん質問させて下さい。 電気設計に精通した皆様、宜しくお願い致します。 DCモータの駆動回路部分をマイコンにて電流制御したいです。 一番シンプルなのは、モータに直列に接続した電流検出用の抵抗から、Vsense信号を読み取ってマイコンに入力し、出力となるモータON信号にチョッピング(PWM制御)をかけるのが良いかと思っています。 この場合、マイコンにはどんな機能(ポート)があれば、それが可能なのですか?私としては、A/Dのポートを使えば出来るのかなぁというような感覚なのですが。ルネサスのマイコンなどでは、A/Dと併記でコンパレータと表記のあるポートなどもありました。何となくこれが最も適しているのかなぁとも思います。 初心者なので、認識がおかしいかもしれません。たくさんご指摘頂ければ幸いです。また、他にもっとシンプル(安価)な方法はありますか? 上記と併せてご教示頂けるとうれしいです。 どうか宜しくお願い致します。

  • DCモータのPAM制御とPWM制御について

    モータについて研究している学生です。 DCモータの省エネルギー制御にはPWM制御とPAM制御がありますが、今現在はほとんどがPWM制御が使われています。なぜPAM制御は使われないのでしょうか?消費電力やノイズと何か関係しているのでしょうか?教えてください。 「DCモータ」についてですので、よろしくお願いします。

  • DCブラシモータのPWM駆動による寿命変化について

    御世話になります 自社のDCモータ駆動製品に速度制御機能を追加するにあたり PWM制御のコントローラを製作しました 動作も問題なかったので製品のオプション品として製品化 を進めようとしたところ 社内で 「PWM駆動によりDCモータに負荷がかかり、製品寿命に影響するのでは」 という意見がでました 私としては製品の機構部を速度制御することにより負荷の最適化が 行えることで、結果として製品寿命が延びると思っていたくらいです メーカに相談してもよくわからないとのことで、困っています 確かにホームページでPWM駆動により ブラシ寿命が減ると注意書きを記載しているメーカもありましたが どうしてそうなるのか原理がよくわかりません ご存知の方がいらっしゃいましたらご教授いただけませんでしょうか? 例えば同負荷 同回転数の連続通電とPWMの場合 概算でどの程度影響(10%減とか)するものなのでしょうか? よろしくお願いいたします

  • DCモータ制御について

    質問です。  複数のDCモータ(PC用ファン)をPWMで制御したいと思っています。 以下のような製品を見つけました。 http://www.robotsfx.com/robot/AGB_SC_01.html が、RCサーボモータのコントロールを行うようです。 RCサーボモータの制御信号でDCモータを回転(速度調整)させることは 可能でしょうか? また、複数のDCモータを簡単にシリアル接続で制御できる方法などありましたら、お教えください。 よろしくお願いします。

  • PWM波形の出力方法

    DCブラシモータの回転速度を調整する回路を作成しようとしています。 電圧の制御はPWM波形制御で行いたいのですが、その方法としてマイコン制御があると思いますが、マイコン以外に制御する方法はどんな方法がありますでしょうか? 発振回路を製作して可変抵抗で制御できるか?とも考えていますが、なかなか参考になる資料がまだ見つかっていません。 もしよろしければ、アドバイスを頂けたら幸いです。 よろしくお願いします

  • モーターのトルク制御について

    モーターをトルクで制御したいのですが、それには電流制御が必要です。モーターはPWM駆動ですが、その時の電流値の推定法がわかりません。この場合の電流値を与える制御式又は制御回路などの方法がありましたら教えてください。お願いします