セクションの複数ページをまとめています。 印刷またはPDF形式で保存...

もとのページに戻る

2025-08-08 現在

Timerライブラリ

Timerライブラリ
    Timerライブラリを紹介します。

    Timerライブラリ

    tsTimerContext

    Timer ライブラリで用いる設定用の構造体。

    • 0クリアすること。
    • 静的に確保すること。
    名前解説
    uint8u8Deviceタイマーデバイスを指定する (E_AHI_DEVICE_TIMER0 .. 4)。
    uint16u16Hzタイマー周波数を Hz で指定する。
    uint8u8PreScale16Mhz クロックに対するプリスケールを設定する。
    bool_tbPWMOutTRUE なら PWM 出力を行う。
    bool_tbDisableIntTRUE なら割り込みを禁止する。

    vTimerConfig()

    解説

    Timer の初期化を行う。

    引数

    名前詳細
    tsTimerContextpsTCタイマー設定の構造体。

    戻り値

    なし

    サンプル

    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 比の変更を行う場合などに利用します。

    引数

    名前詳細
    tsTimerContextpsTCタイマー設定の構造体。

    戻り値

    なし

    サンプル

    // 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 の動作を停止する。

    引数

    名前詳細
    tsTimerContextpsTCタイマー設定の構造体。
    戻り値

    なし。

    サンプル

    // just stop the timer
    vTimerStop(&sTimerApp);
    ...
    // restart
    vTimerStart(&sTimerApp);
    ...
    // now, disable timer completely
    vTimerStop(&sTimerApp);
    vTimerDisable(&sTimerApp);

    vTimerDisable()

    Timer を破棄する。

    引数

    名前詳細
    tsTimerContextpsTCタイマー設定の構造体。

    戻り値

    なし

    サンプル

    // just stop the timer
    vTimerStop(&sTimerApp);
    ...
    // restart
    vTimerStart(&sTimerApp);
    ...
    // now, disable timer completely
    vTimerStop(&sTimerApp);
    vTimerDisable(&sTimerApp);