mwf_periph_wwdt - WWDT
mwf_periph_wwdt - WWDT
ウォッチドッグタイマーを利用するため手続きをまとめたペリフェラルオブジェクトです。
mwf_periph_wwdt - WWDT
ウォッチドッグタイマーを利用するため手続きをまとめたペリフェラルオブジェクトthe_wwdt
を実装しています。
TWENETでは暗黙に使用されますので、ユーザプログラムでの初期化は不要です。
コード例
void setup_func() {
mwf::gobal_init_wwdt_manager();
the_wwdt.init(); // timeout in 4000ms approx.
}
// in some function called periodically (e.g. invoked by SysTick Timer.)
void do_every_tick() {
the_wwdt.refresh();
}
class mwf::periph::wwdt
global_init_wwdt_manager(), global_deinit_wwdt_manager()
static void global_init_wwdt_manager();
static void global_deinit_wwdt_manager();
the_wwdt
クラスオブジェクトの生成と破棄を行います。
init(), deinit()
void init(uint32_t u32ms = 0);
void deinit();
ウォッチドッグタイマーを初期化・停止(※1)します。
- 初期化時のパラメータ
u32ms
はタイムアウトをミリ秒(ms)で指定します。0
または省略したときは4000msとなります。 - ※1 ハードウェアの制約上、一度実行したウォッチドッグタイマーは停止しません。
deinit()
はライブラリ手続きとして用意しています。(タイマーの再始動時などにdeinit()
を実行してからinit()
を再度呼び出す)
set_timeout()
void set_timeout(uint32_t u32ms);
ウォッチドッグタイマーのタイムアウトまでの時間を変更します。u32ms
にはタイムアウト時間をミリ秒(ms)で指定します。
u32ms
の妥当性の検証はしません。init()
では0
を規定値としていましたが、本関数で0
を与えた場合の振る舞いは未定です。
refresh()
void refresh();
ウォッチドッグタイマーのタイムアウトまでに必ず呼び出すリフレッシュ関数です。
class mwf::periph::wwdt (sys_ev_handler)
on_sleep()
WWDTの停止処理を行います。
on_wakeup()
WWDTの始動処理を行います。
- スリープ前に稼働状態の場合は、WWDTを再度稼働させます。