# OS_WaitVBlankIntr

## 構文

      #include <nitro/os.h>

      void OS_WaitVBlankIntr( void );

## 引数

なし。

## 返り値

なし。

## 説明

Ｖブランク割り込みが発生するまで待ちます。
`SVC_WaitVBlankIntr()` と違い、空き時間にはCPUが他のスレッドへ切り替わります。

Vブランク割り込みハンドラにて `OS_SetIrqCheckFlag( OS_IE_V_BLANK )` で Vブランクのチェックフラグをセットしてください。`OS_WaitVBlankIntr()` 内部では IRQ 割り込み後にこのフラグがセットされたことで Vブランクが発生したと見なします。

###
複数のスレッドが同じ Vブランク割り込みを待つ場合

複数のスレッドが同時期に`OS_WaitVBlankIntr()` を呼び出す場合には動作に注意が必要です。`OS_WaitVBlankIntr()` では最初にVブランクのチェックフラグをクリアしているからです。例えば、ある2つのスレッドが `OS_WaitVBlankIntr()` でVブランク待ちを行なっていた場合、まず復帰した片側のスレッドが何らかの処理を行なってもう一度 `OS_WaitVBlankIntr()` に出会うと、その時点でフラグがクリアされてしまいますので、他方のスレッドが復帰することが出来ません。

## 参照

`SVC_WaitVBlankIntr
`

## 履歴

2005/10/07 初版