今回は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の動作を確認する。