Shinobi Library - タイマー関数

syTmrGenSetInt

汎用タイマーの割り込み関数の登録

書式

void syTmrGenSetInt( func, param )
void (*func)(void *)
void *param

引数

func   カウンタ値が0になったときに呼ばれる関数へのポインタ
param   割り込み関数に渡す引数のポインタ

戻り値

なし

解説

汎用タイマーの割り込み関数の登録を行います。

汎用タイマーは減算型のタイマーとなっており、 タイマーカウンタ値が0になると割り込み(タイマー割り込み)が発生する仕組みになっています。 このタイマー割り込み発生時にコールバックする関数をこの関数で登録します。

いったん登録した関数が呼ばれると関数登録は無効になりますので、 連続してタイマー割り込み呼び出しを行いたい場合には、 その都度この関数で登録を行う必要があります。

通常は関数の登録をおこなったあとすぐに復帰しますが、 引数にNULLを指定すると、カウンタ値が0になるまで待ってこの関数から復帰するようになります。


用例

/* Callback function example */
void IntFunc(void* param)
{
	/* Save the parameters */
	IntCount = param;

	/* Continue interrupt generation */
	syTmrGenSetInt(IntFunc, param+1);

	/* Set the initial value in the counter*/
	syTmrGenSetCount(0-10000);

	/* Restart the timer */
	syTmrGenStart();
}

備考

割り込み発生時のコールバック関数が既に登録されているときにこの関数をコールした場合は、 後から登録された関数のみが有効となります。

タイマー停止状態で、引数funcにNULLを指定してこの関数を実行した場合、システムが自動的にタイマーを稼動させます。


syTmrGenSetInt
COPYRIGHT © SEGA ENTERPRISES, LTD., 1998-2000