RL78マイコン タイマー割込みでLチカ

今回はRL78マイコンのタイマー割込みでLチカをしてみました。

初期設定はRL78マイコン初期設定を参照してください。

下記が開発環境になります。

開発環境 CS+ for CC V8.02.00
デバッガ E1
ボード HSBRL78F15-64(北斗電子)
マイコン R5F113LLLFB

 

目次

コード生成

ポートの設定

LEDが割付けしてあるポートを出力に設定する。

今回使用するボード上のLEDはポート9のbit0に割付けしてあるため、P90を「出力」に設定

タイマ設定

TAU0のチャネル0を「インターバル・タイマ」に設定

1秒間隔でLEDをON/OFF反転しよう思いますのでインターバル時間を「1000ms」に設定する。

 

以上で設定完了。コード生成ボタンを押す。

コーディング

自動生成されたファイル「t_cg_timer_user.c」のなかにタイマー割込み関数「r_tau0_channel0_interruput」が生成されているので、そのなかにLED点滅の処理をコーディングする。

タイマー割込みでポート9のbit0を反転する処理をコーディング


static void __near r_tau0_channel0_interrupt(void)
{
/* Start user code. Do not edit comment generated here */
    P9_bit.no0 ^= 1;
/* End user code. Do not edit comment generated here */
}

 

R_TAU0_Channel0_Start()関数をコールしてタイマー割込みを開始する。


/********************************************************************
* Function Name: main
* Description  : This function implements main function.
* Arguments    : None
* Return Value : None
*********************************************************************/
void main(void)
{
    R_MAIN_UserInit();
    /* Start user code. Do not edit comment generated here */
    while (1U)
    {
        ;
    }
    /* End user code. Do not edit comment generated here */
}

/********************************************************************
* Function Name: R_MAIN_UserInit
* Description  : This function adds user code before implementing main function.
* Arguments    : None
* Return Value : None
*********************************************************************/
void R_MAIN_UserInit(void)
{
    /* Start user code. Do not edit comment generated here */
    R_TAU0_Channel0_Start();    // タイマー開始
    EI();                       // 割込み許可
    /* End user code. Do not edit comment generated here */
}

以上でコーディング完了

ビルド&ダウンロード

メニューの「デバッグ」>「ビルド&デバッグツールへダウンロード」を実行してLEDの動作を確認する。

よろしければシェアを!
  • URLをコピーしました!
目次