AVRマイコンの割り込みについて

このQ&Aのポイント
  • AVRマイコンの割り込みについて、優先順位や処理中断について知りたいです。
  • AVRマイコンの割り込みにおける処理中断や優先度について教えてください。
  • AVRマイコンの割り込みに関して、中断処理や優先順位について質問があります。
回答を見る
  • ベストアンサー

AVRマイコンの割り込みについて

AVRマイコンの割り込みについて 初心者です。 ・AVRマイコンの割り込みの優先順位ですが、割込みベクターのアドレスが小さい順に優先度が高いでよろしいでしょうか? ・優先低の割り込みルーチンを処理している時に、優先高の割り込みが入った場合、  (1)優先低の割り込みルーチン処理中断→優先高の割り込みルーチンの処理、完了→優先低の割り込みルーチン処理再開(中断ヶ所から)  (2)優先低の割り込みルーチン処理、完了→優先高の割り込みルーチンの処理、完了  (3)その他 (1)、(2)、(3)のどの処理が行われますか? ・優先高の割り込みルーチンを処理している時に、優先高の割り込みを禁止し、ルーチン内で優先低の割り込みが入った場合、優先高の割り込みルーチンから優先低の割り込みルーチンにとばすことは可能でしょうか? 以上、よろしくお願い致します。

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

  • ベストアンサー
  • D-Matsu
  • ベストアンサー率45% (1080/2394)
回答No.1

AVRは使用経験がないのでマイコン一般的な回答ですが、 ・優先度は割り込みごとに設定できるものが多いです。同優先度の割り込みが複数入った場合にどうなるかはハンドラ次第です。 ・多重割り込みをサポートしていない、あるいは有効にしていない場合は(2)です。多重割り込みが有効の場合は(1)ですね。 ・多重割り込みで可能なのはより高優先の割り込みのみです。ISR実行中にその割り込みを禁止したとしても、ISR自体が終了する訳ではない上に優先度は有効のままですから、ISR中に低優先度割り込みが入ることはできません。

ron_nast
質問者

お礼

ご回答ありがとうございます! 参考にさせて頂きます!!

関連するQ&A

  • AVRマイコン

    AVRマイコンについて質問があります. AVRはスタートアップルーチンや ベクターテーブル等は 開発環境でコンパイルする際に自動的に 付加されると聞いたのですが 起動時にどのタイミングで スタートアップルーチンやベクターテーブルが 読まれ,どのように使われているのか 調べたのですが分かりません. どなたかご存知の方は教えていただけないでしょうか?

  • AVRマイコンでクロックカウントする場合

    手元にテスト環境が無いので、質問致します。 周波数40KHz、パルス幅5μSの正パルスをAVRマイコンでカウントし比較一致で出力したいのですが、可能でしょうか? AVRの取説によると、外部カウンタ入力はデューティー比50%でないとダメなようなので、汎用I/Oの割り込みを使って処理しようと考えています。パルスの立ち上がりで変数をインクリメントし、所定の数値との比較一致で外部出力をONさせる、それだけのことですが、可能でしょうか? よろしくお願いします。

  • AVRマイコンの内部EEPROMの値について

    AVRマイコンの内部EEPROMの値について AVRマイコンにて、デバイスシャットダウン時にあるデータを内部EEPROMに保存し、起動時にその前回保存したデータを読み込むという制御を考えています。 ここで質問ですが、初めてプログラムを焼いたデバイスに電源を投入した場合に、内部EEPROMに入っている値を読み込んだ場合、その値は不定値なのでしょうか? それとも決められた値なのでしょうか? ソースの対処はどのようにすればよろしいでしょうか? ご教授下さい。 よろしくお願い致します。

  • AVRマイコンの未使用ピンの処理について

    全くのマイコン初心者です。AVRマイコンの未使用ピンの処理について教えて下さい。 未使用ピンは基本的に出力に設定しておけばいいというのは判ったのですが、 1,RS232CのRXD、TXDピンはIN或いはOUTどちらに設定しておけば良いのか? 2,ISPのSCK,MOSI,MISOはRUN中は使いませんが、これもIN、OUTどちらに設定しておけば良いのか? 3,ADCを使わない場合、AVREF,AVCCピンはどう処理するのか? 以上、いろいろ調べたのですが、判りません。 よろしくお願いいたします。

  • 割り込み処理について

    割り込み処理について 初心者です。 AVRマイコンの割り込み処理について質問させて頂きます。 INT0割り込みの割り込みが入ったら、割り込みルーチン中の他の割り込みを許可し、かつINT0の割り込みを禁止したいのですが、下記ソースで問題はありませんか? INT0割り込みが終了して、メインルーチンに復帰した直後にINT0割り込みを許可したいのですが、下記ソース(1)で問題はありませんか(メインルーチンに復帰した直後に許可したいのですが、方法がわかりません)? ISR(INT0_vect,ISR_NOBLOCK) {     int0割り込み禁止      ・      ・      ・      ・    (int0割り込み要求フラグクリア) ・・・・(1)        (int0割り込み許可)         ・・・・(1)   } よろしくお願い致します。

  • 割り込みベクタの機能と実現方法

    (d)割込ベクタの機能と実現方式を説明せよ。 (1)機能 割り込みには、ハードウェア割り込み、ソフトウェア割り込みがあるが、割り込みベクタによって、どのような割り込みが発生したかが分かるようになっている。割り込みの発生要因によって、実行される処理(割り込みハンドラーと呼ばれたりサービスルーチンと言われる)はシステムによって決められている。 (2)実現方法 ベクタテーブルを作成する必要がある。以下それについて具体的に説明する。 多数の割り込み要因がある場合,それぞれに対応する割り込みサービス・ルーチンを作っておく必要がある.そして,割り込み要求信号が発生したときには,要求を出している要因に応じて,正しい割り込みサービス・ルーチンを呼び出さなければならない.そのために用いられるのが割り込みベクタ・テーブルである.それぞれの割り込み要因は,割り込みが受け付けられると,割り込み元を示す番号(割り込みベクタ)を送信する.メモリの中には,この番号と割り込みサービス・ルーチンの先頭アドレス(あるいはそのアドレスへの分岐命令)を対応付けた表(テーブル)を用意しておく.この対応表を,割り込みベクタ・テーブルと呼ぶ.  割り込みは元のソフトウェアの実行を強制的に中断してしまう.このため,特に中断されたくない処理を実行している場合には,その間だけ割り込みを禁止にする機能がある.  また,割り込み要因の中には,割り込み要求を常時有効にしたい要因もあるが,特定の局面でだけ有効にしたい要因もある.そのため,各割り込み要因ごとに,割り込みの受付を無効にする割り込みマスクの機能がある.割り込みマスクで無効にできる割り込みはマスカブル割り込み,割り込みマスクで無効にできない割り込みをノン・マスカブル割り込み(NMI)と呼ぶ.  特に緊急性が高い割り込みにはNMIを用いる. いかがでしょうか? 実現方法のところが答えられていますでしょうか?

  • AVRマイコンのRESET端子について

    AVRマイコンのRESET端子について質問させて頂きます。 RESET端子が汎用ポートと兼用の場合、プログラム書き込み時に、その端子をRESETか汎用ポートかをヒューズビットで選択できますが、汎用ポートとしてプログラムを書き込んだ場合、再度SPI通信でプログラムの書き込みを行うのは不可能なのでしょうか? よろしくお願い致します。

  • H8マイコンでの割り込み(シリアルポート入力で)

    マイコン:AKI H8/3048F 開発環境:GCC Developer Lite マイコンとパソコンをRS-232Cケーブルでつないでいます。 ハイパーターミナルを使用して、マイコンを制御したいと考えております。 それで、パソコンのキーボードから入力があった時だけ、割り込みを実行したいです。 割り込みが無い場合は、パソコンでマイコンを制御することができたのですが、割り込みを追加したら、うまくいかなくなりました。 アセンブラを使用せずに、C言語だけでプログラムを完成させたいと思っています。 SCI1からの割り込み処理をするには、どの様にしたらよいのでしょうか? どうか、お願いいたします。

  • 割り込み処理(H14春22)

    以下の基本情報処理問題の解答を見ても理解し切れません。 ご助言お願いします。 【問22】割込みが発生すると,あるアドレスが退避され,割込み処理が実行される。割込み処理が完了すると,退避されていたアドレスが復帰され,割込み直前に実行していたプログラムの実行が再開される。退避されていたアドレスはどれか。 ア 割込みが発生したときに実行していた命令のアドレス イ 割込みが発生したときに実行していた命令の次の命令のアドレス ウ 割込み処理の最後の命令のアドレス エ 割込み処理の先頭の命令のアドレス 【答】イ 割込みが発生すると実行されていたプログラムが中断され、割込み処理が実行される。 割込み処理が完了すると退避されていたアドレスが復帰され、割込み直前に実行していた元のプログラムの実行が再開される。 その場合、割込みが発生したときに実行していた命令の次の命令のアドレスが実行される。 【コメント】 下のような流れになると思っています。 なぜ「次の命令のアドレス」が出てくるのか、教えて頂けませんか。 (1)処理実行中 (2)割り込み発生 (3)(1)を中断し、どこかに退避 (4)(2)を実行 (5)(2)が完了したので、(1)を元に戻す (6)(1)を実行(割り込み前に戻る)

  • [コンピュータアーキテクチャ]割り込みについて

    (1)割り込みの優先順位はどのような方法で決定されているか説明しなさい。 (2)入出力割込みの必要性について、プロセッサと入出力装置における時間経過にしたがって具体的に説明しなさい。 コンピュータアーキテクチャについて、以上の2つの設問が分かりませんでした。助言をお願いします。 (1)の設問では、インターネットで調べたのですが、割り込みなどのプロセスやタスクはディスパッチ処理などによって割り当てられている、ということが分かりました。 調べると、例えばディスパッチ処理では、「ディスパッチの優先順位はタスク毎に決められており,作られた時刻に関わらず優先順位の高いタスクから順にディスパッチされていく」ということまでは分かったのですが、その優先順位はどうやって決められているのか?ということが分からず困っています。 そして(2)の設問では、調べただけでは分かりませんでした。「入出力装置における時間経過」の意味が分からず、どう具体的に説明していいのかも分からない状況です。 以上の2点についてご回答お願いします。 質問に補足しなければいけない点などがあればコメントしてください。