前回は、Systic Timerを使用したディレイを紹介しました。これはInterruptを利用したもので、割り込み処理、例外処理などと呼ばれます。これ以外にもピン割り込みなど様々な種類がありハンドラと呼ばれる関数内に、割り込み(例外)が生じたときの処理を記述します。割り込みが生じるとメインループの処理から一時的に、ハンドラ内の処理が行われて終了すると元のループに戻るイメージとなります。
前回の記事では、下記のコード部分に相当します。
/* SysTick interrupt happens every 10 ms */
void SysTick_Handler(void)
{
TimeTick++;
}
SysTick_Handlerが割り込み処理用のハンドラで、TimeTickという変数の値を1増やす処理をしています。ここでSysTick_Handlerを選択して右クリックしてみましょう。
![sytick_handler_1](https://i0.wp.com/easylabo.com/wp-content/uploads/2013/10/sytick_handler_1.png?resize=688%2C301)
Declaration->Projectを選択するとハンドラ定義の場所をサーチする事ができます。
![sytick_handler_2](https://i0.wp.com/easylabo.com/wp-content/uploads/2013/10/sytick_handler_2.png?resize=411%2C138)
検索結果から、cr_startup_lpc11.cに記述がある事がわかります。このファイルは、プロジェクトのstartupフォルダなどに置かれています。
![sytick_handler_3](https://i0.wp.com/easylabo.com/wp-content/uploads/2013/10/sytick_handler_3.png?resize=237%2C236)
このファイルには、使用できる割り込みのハンドラが定義されています。一般には、cr_startup_lpc製品名.cのファイルを参照すれば、割り込み用のハンドラを一通り確認する事ができます。
Sponsored Link