マイコンユーザーのさまざまな疑問に対し、マイコンメーカーのエンジニアがお答えしていく本連載。今回は、初心者の方からよく質問される「割り込みハンドラ/ハンドラモードとは?」です。
素朴な疑問から技術トラブルなどマイコンユーザーのあらゆる悩みに対し、マイコンメーカーのエンジニアが回答していく連載「Q&Aで学ぶマイコン講座」。
今回は、初心者から多く寄せられる質問です。
マイコンの説明書に「割り込みハンドラ」とか「ハンドラモード」と書かれていますが、そもそも「割り込み」とは何ですか?「割り込みハンドラ」とはどんな機能で、「ハンドラモード」とは何でしょうか?
割り込みとは、何かしらのイベントをきっかけに、現在実行しているプログラムを一時的に中断して、そのイベントに関連する処理を行うことです。
割り込みハンドラとは、「割り込みを扱う(ハンドルする:handle)機能」という意味になります。マイコンでは、ソフトウェアが割り込みを処理するので、一般的な割り込みハンドラとは、割り込みを処理・制御するためのプログラムのことを指します。割り込みハンドラのことを、メインルーティンに対比して、割り込みサービスルーティンと呼ぶ場合もあります。そして、割り込みハンドラが動作するモードをハンドラモードと呼びます。
例えば、時計用のタイマが時間をカウントしていて、1秒ごとに割り込み要求を発生させます。するとマイコンは、現在行っている処理を中断して、「時計表示を1秒更新するプログラム」を実行します。更新が終わると、中断していたプログラムを再開します。
ここでは「時計表示を1秒更新するプログラム」が割り込みハンドラになります(図1参照)。
Copyright © ITmedia, Inc. All Rights Reserved.