picox  0.1
Xvtimer

時間管理によるコールバック関数呼び出し [詳解]

Xvtimer 連携図

データ構造

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コールバック関数の引数
delayintervalのカウントを開始するまでの遅延時間
intervalコールバックの呼び出し周期
once初回のコールバック呼び出しでリクエストを除去するかどうか
deleterリクエストを除去する時に呼び出すデリータ
void xvtimer_remove_requst ( XVTimer self,
XVTimerRequest request 
)

リクエストを除去します

コールバック関数の呼び出し中に自分自身や他のリクエストを除去することも可能で す

void xvtimer_schedule ( XVTimer self,
XTicks  step 
)

仮想タイマのカウントをstep数ぶん進めます

タイマのカウントは自動的には行われないので、利用者がこの関数を呼び出して自分 でカウントを進める必要があります。