# OS_SetIrqMask

## 構文

  `#include <nitro/os.h>`
  `OSIrqMask OS_SetIrqMask( OSIrqMask intr );`

## 引数

intr | 設定するIRQ割り込み要因

## 返り値

この関数を呼ぶ前の、IRQ割り込み要因設定です。要因については以下を参照してください。設定されていた要因の論理和が返ります。

→ 割り込みの種類

## 説明

IRQ割り込みの要因を設定します。

`OS_EnableIrq()` などでIRQ割り込みのマスターイネーブルを許可にセットすると、この関数でイネーブルにしたIRQ割り込み要因に対応するIRQ割り込みだけが発生します。割り込みの種類は、動作モード(NITROモード、TWLモード) や、プロセッサ(ARM9、ARM7) によって異なります。

###
割り込みの種類

引数 intr で設定する割り込み要因を指定します。割り込みの種類については以下を参照してください。

→ 割り込みの種類

###
例

> `// Vブランク割り込みと、DMA0割り込みを許可する
> OS_SetIrqMask( OS_IE_V_BLANK | OS_IE_DMA0 );
> // IRQ マスターイネーブル
> OS_EnableIrq();`

###
注意

`OS_SetIrqMask()` は、「IRQ割り込み要因を指定のものに上書き設定する」関数であり、指定の要因を追加する関数ではありません。割り込み要因の中にはシステム側で設定しているものもありますので、通常は無闇に設定を上書きすることはしないで下さい。例えばチックやアラームはタイマ割り込みを使用しているので、該当タイマのIRQ割り込み要因は許可になっていなければなりません。

IRQ割り込み要因をこれまでの設定に追加する場合は、`OS_EnableIrqMask()` を使用してください。

## 内部動作

IOレジスタの一つ、IE (Interrupt Enable) レジスタを操作しています。

## 参照

`OS_GetIrqMask, OS_EnableIrqMask, OS_DisableIrqMask
割り込みの種類
`

## 履歴

2008/05/30 割り込みの種類を別ページにした。
2005/03/08 用語統一 [割込み] → [割り込み]
2004/12/08 OS_IE_KEY についての注意を追加
2004/11/24 OS_IE_SIO を削除
2004/09/01 「サブプロセッサ」を「ARM7」に、「サブプロセッサ間」を「ARM9・ARM7間」に変更
2004/03/12 `OS_EnableIrqMask()` との違いを強調
2003/12/01 初版