

#include <nitro/os.h>
void OS_WaitVBlankIntr( void );
なし。
なし。
Vブランク割り込みが発生するまで待ちます。
SVC_WaitVBlankIntr() と違い、空き時間にはCPUが他のスレッドへ切り替わります。
Vブランク割り込みハンドラにて OS_SetIrqCheckFlag( OS_IE_V_BLANK ) で Vブランクのチェックフラグをセットしてください。OS_WaitVBlankIntr() 内部では IRQ 割り込み後にこのフラグがセットされたことで Vブランクが発生したと見なします。
複数のスレッドが同時期にOS_WaitVBlankIntr() を呼び出す場合には動作に注意が必要です。OS_WaitVBlankIntr() では最初にVブランクのチェックフラグをクリアしているからです。例えば、ある2つのスレッドが OS_WaitVBlankIntr() でVブランク待ちを行なっていた場合、まず復帰した片側のスレッドが何らかの処理を行なってもう一度 OS_WaitVBlankIntr() に出会うと、その時点でフラグがクリアされてしまいますので、他方のスレッドが復帰することが出来ません。
2005/10/07 初版