programing:tkernel-programing:tk-dly-tsk-time
no way to compare when less than two revisions
差分
このページの2つのバージョン間の差分を表示します。
— | programing:tkernel-programing:tk-dly-tsk-time [2019/05/08 10:16] (現在) – 作成 yoko | ||
---|---|---|---|
行 1: | 行 1: | ||
+ | tk_dly_tsk(1)での待ち時間 | ||
+ | ======================== | ||
+ | `tk_dly_tsk(1)`での待ち時間は、1~2mSになる。 | ||
+ | |||
+ | 経緯 | ||
+ | ---- | ||
+ | 以下のコードを実行して、信号をオシロで実測したら2m秒周期となったので確認した。 | ||
+ | |||
+ | <code c> | ||
+ | while (1) { | ||
+ | tk_tly_tsk(1); | ||
+ | port_inv(); | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | 説明 | ||
+ | ---- | ||
+ | t-kernelの仕様書を確認すると、「(1)を指定した場合は、内部Tickタイマーの2回目の検出で起床する」と書かれている(尚、0指定は出来ない)。 | ||
+ | たぶん、最低でも指定した待ち時間以上は確保するとの考え方のよう。 | ||
+ | |||
+ | 対応 | ||
+ | ---- | ||
+ | 1m秒待ちしたい場合は、T-Kernelの「周期ハンドラ」を使うか、自前でハードタイマ割込みでイベントフラグなどを使う。 | ||
+ | |||
+ | 補足 | ||
+ | ---- | ||
+ | |||
+ | * アバウトな待ち時間が必要な場合は、`tk_dly_tsk()`でも十分使える。 | ||
+ | * iTronでもたぶん同様の動き。 | ||
programing/tkernel-programing/tk-dly-tsk-time.txt · 最終更新: 2019/05/08 10:16 by yoko