Timerライブラリ
Timerライブラリ
Timer
ライブラリを紹介します。Timerライブラリ
tsTimerContext
Timer
ライブラリで用いる設定用の構造体。
- 0クリアすること。
- 静的に確保すること。
型 | 名前 | 解説 |
---|---|---|
uint8 | u8Device | タイマーデバイスを指定する (E_AHI_DEVICE_TIMER0 .. 4)。 |
uint16 | u16Hz | タイマー周波数を Hz で指定する。 |
uint8 | u8PreScale | 16Mhz クロックに対するプリスケールを設定する。 |
bool_t | bPWMOut | TRUE なら PWM 出力を行う。 |
bool_t | bDisableInt | TRUE なら割り込みを禁止する。 |
vTimerConfig()
解説
Timer
の初期化を行う。
引数
型 | 名前 | 詳細 |
---|---|---|
tsTimerContext | psTC | タイマー設定の構造体。 |
戻り値
なし
サンプル
tsTimerContext sTimerApp; // global or static allocation
// set 64ticks/sec
memset(&sTimerApp, 0, sizeof(tsTimerContext));
sTimerApp.u8Device = E_AHI_DEVICE_TIMER0;
sTimerApp.u16Hz = 64;
sTimerApp.u8PreScale = 4; // 15625ct@2^4
vTimerStart()
解説
Timer
を開始する。
本関数は、既に開始済みのTimer
についても呼び出し可能です。Duty 比の変更を行う場合などに利用します。
引数
型 | 名前 | 詳細 |
---|---|---|
tsTimerContext | psTC | タイマー設定の構造体。 |
戻り値
なし
サンプル
// initialize and start
vTimerConfig(&sTimerApp); // initialize
vTimerStart(&sTimerApp); // start
// change duty
sTimerPWM.u16Duty = 256; // set new duty ratio
vTimerStart(&sTimerPWM); // just start again to change duty
vTimerStop()
解説
Timer
の動作を停止する。
引数
型 | 名前 | 詳細 |
---|---|---|
tsTimerContext | psTC | タイマー設定の構造体。 |
戻り値
なし。
サンプル
// just stop the timer
vTimerStop(&sTimerApp);
...
// restart
vTimerStart(&sTimerApp);
...
// now, disable timer completely
vTimerStop(&sTimerApp);
vTimerDisable(&sTimerApp);
vTimerDisable()
Timer
を破棄する。
引数
型 | 名前 | 詳細 |
---|---|---|
tsTimerContext | psTC | タイマー設定の構造体。 |
戻り値
なし
サンプル
// just stop the timer
vTimerStop(&sTimerApp);
...
// restart
vTimerStart(&sTimerApp);
...
// now, disable timer completely
vTimerStop(&sTimerApp);
vTimerDisable(&sTimerApp);