picox
0.1
|
時間管理によるコールバック関数呼び出し [詳解]
![]() |
データ構造 | |
struct | XVTimer |
仮想タイマー構造体です [詳解] | |
struct | XVTimerRequest |
コールバックリクエスト構造体です [詳解] | |
型定義 | |
typedef void(* | XVTimerCallBack) (void *arg) |
コールバック関数ポインタ型です | |
関数 | |
void | xvtimer_add_request (XVTimer *self, XVTimerRequest *request, XVTimerCallBack callback, void *arg, XTicks delay, XTicks interval, bool once, XDeleter deleter) |
コールバックリクエストを追加します [詳解] | |
void | xvtimer_deinit (XVTimer *self) |
リクエストを全て除去します | |
void | xvtimer_init (XVTimer *self) |
仮想タイマオブジェクトを初期化します | |
void | xvtimer_init_request (XVTimerRequest *request) |
コールバックリクエストオブジェクトを初期化します | |
XTicks | xvtimer_now (const XVTimer *self) |
仮想タイマの現在時刻を返します | |
void | xvtimer_remove_requst (XVTimer *self, XVTimerRequest *request) |
リクエストを除去します [詳解] | |
void | xvtimer_schedule (XVTimer *self, XTicks step) |
仮想タイマのカウントをstep数ぶん進めます [詳解] | |
時間管理によるコールバック関数呼び出し
組込み開発ではタイマーを使った時間指定によるコールバック呼び出しは必須ですよね。 このモジュールではコールバック関数のスケジューリングを支援します。 排他処理は行っていないのでタイマのハードウェア割り込みを伴う用途に使用する場 合は、このモジュールの関数を適当にラップしてやってください。
void xvtimer_add_request | ( | XVTimer * | self, |
XVTimerRequest * | request, | ||
XVTimerCallBack | callback, | ||
void * | arg, | ||
XTicks | delay, | ||
XTicks | interval, | ||
bool | once, | ||
XDeleter | deleter | ||
) |
コールバックリクエストを追加します
request | 初期化済みのリクエストオブジェクト |
callback | コールバック関数 |
arg | コールバック関数の引数 |
delay | intervalのカウントを開始するまでの遅延時間 |
interval | コールバックの呼び出し周期 |
once | 初回のコールバック呼び出しでリクエストを除去するかどうか |
deleter | リクエストを除去する時に呼び出すデリータ |
void xvtimer_remove_requst | ( | XVTimer * | self, |
XVTimerRequest * | request | ||
) |
リクエストを除去します
コールバック関数の呼び出し中に自分自身や他のリクエストを除去することも可能で す