

#include <nitro/os.h>
void OS_SetPeriodicVAlarm(
OSVAlarm* alarm,
s16 count,
s16 delay,
OSVAlarmHandler handler,
void* arg );
| alarm | Vカウントアラームを設定するVカウントアラーム構造体へのポインタ |
| count | 毎フレームVカウントアラームが発動する(ハンドラを呼び出す)Vカウント |
| delay | 遅延を許可するVカウント数 |
| handler | Vカウントアラームハンドラ |
| arg | Vカウントアラームハンドラが呼ばれる際の引数 |
なし。
周期的なVカウントアラームを設定します。
すべてのフレームでVカウントが count になったときに handler が呼び出されます。handler は、
typedef void (*OSVAlarmHandler)( void* );
で定義された OSVAlarmHandler 型の関数です。handler は OS のVカウント割り込みのハンドラから呼び出されます。従って割り込みは禁止状態となっています。handler が呼び出されるとき、arg を引数に取ります。
他のVカウントアラームが動作しているなどの理由で指定のVカウントちょうどに呼べない時に、どのぐらいの遅延を許可するかをdelayで指定します。例えばcount=100, delay=5 であれば、Vカウント=100でハンドラを呼ぶことが出来なくてもVカウント=105までに呼ぶことが可能なら呼び出します。0
を指定すると指定の Vカウントでしか呼び出されません。 OS_VALARM_DELAY_MAX
ならば指定のVカウント以降、呼び出し可能になった時点で必ず呼び出されます。詳細は
VAlarm の概要 の説明を参照して下さい。
すでにVカウントアラームがセットされているOSVAlarm構造体へのポインタを alarm に指定した場合、OS_Panic() で停止します。
Vカウントアラームを停止したい場合は、OS_CancelVAlarm() や OS_CancelVAlalrms() などを使用します。
OS_InitVAlarm,
OS_CreateVAlarm,
OS_SetVAlarm,
OS_CancelVAlarm, OS_CancelVAlarms
2005/03/08 用語統一 [割込み] → [割り込み]
2004/08/30 セットされているVアラーム構造体は使用できない記述を追加
2004/07/06 delay についての記述を追加
2004/02/24 初版