# OS_SetIrqFunction

## 構文

  `#include <nitro/os.h>`
  `void OS_SetIrqFunction( OSIrqMask intr, OSIrqFunction function );`

## 引数

intr | 設定するIRQ割り込み要因
function | 割り込みハンドラ

## 返り値

なし。

## 説明

割り込みハンドラを設定します。

指定のIRQ割り込みが発生したときにジャンプする関数(割り込みハンドラ)を設定します。intr には、ハンドラを設定するIRQ割り込み要因を指定します。function にはハンドラを指定します。

割り込みハンドラは`OSIrqFunction`型で、これは引数を持たない、void型関数です。

###
割り込みの種類

割り込みの種類については以下を参照してください。

→ 割り込みの種類

###
例

> `main()
> {
> ：
> OS_InitIrqTable();
> OS_SetIrqFunction( OS_IE_V_BLANK, vhandler );
> ：
> }
> void vhandler( void )
> {
> // V ブランク割り込み処理
> }`

###
注意

タイマ割り込みについては注意が必要です。ハードウェアのタイマ仕様では、設定したタイマ割り込みは繰り返し発生しますが、OSでは最初の一回が発生したときに登録されたハンドラの設定を解除しますので、タイマ割り込みハンドラは最初の一回しか発生しません。繰り返し発生させるためには割り込みハンドラ内で再設定するなどの処理が必要です。

## 参照

`OS_SetIrqMask, OS_InitIrqTable, OS_GetIrqFunction
`

## 履歴

2005/03/08 用語統一 [割込み] → [割り込み]
2004/06/03 タイマ割り込みについての注意を追加
2003/12/01 初版