Copyright (C)SUWA TSUSHIN NETWORK.
All Rights Reserved. TOPへ戻る
スポンサードリンク

No.0104 2026.1.2




ルネサス RL78/F25 (5) タイマーでLチカの方法





回路図(PDF): 20251228_RL78F25.pdf (1,112 KB)(前回と同じ)

ピンアサイン表(Excel): RL78_F25 ピンアサイン 20251228.xlsx (23 KB)(前回と同じ)

ソースファイル: 20260101_RL78F25-1.zip (1.91MB)


□ 1.タイマーを使う方法

Lチカは、タイマー機能を使用して実現します。
スマート・コンフィグレータを起動して、「コンポーネント」タブの「タイマ・アレイ・ユニット」を開きます。
「TAU1」の「TAU17」をダブルクリックしてコンポーネントの追加ダイアログを開きます。
コンポーネントに「インターバル・タイマ」が選択されていることを確認して、次へをクリックします。
今回はタイマー17を使用しますが、今回はどのタイマーを使用しても大丈夫です。




設定そのままで、終了(E)をクリックします。




今回は0.5秒ごとにLEDがON/OFFするようにします。
Config_TAU1_7 の設定が表示されるので、クロックソースを「fCLK/2^8」に変更します。
インターバル時間(16ビット)を「500」、単位を「ms」に変更します。
設定が完了したら、「コードの生成」を実行して、スマート・コンフィグレータを閉じます。




CS+を確認すると、Config_TAU1_7とソースコードが追加されています。




Config_TAU1_7.cを確認すると、R_Config_TAU1_7_Start()関数と、R_Config_TAU1_7_Stop()関数があります。
それぞれタイマーをONする関数と、OFFする関数です。今回はmain()関数で使います。




main()関数の記述です。 最初にタイマーをON/OFFする関数を呼び出すために、Config_TAU1_7.h ヘッダファイルをincludeします。
タイマーの状態遷移を示す変数として、timer_swをグローバル変数として宣言します。
初期状態では、RL78のすべての割込が無効となっているため、__EI()を呼び出して割り込みを有効にします。
ボタンが押されたとき、timer_swの値に応じてLEDをON/OFFさせるタイマーをON、もしくはタイマーを止める要求にします。





Config_TAU1_7_user.c に、タイマーがカウント値に達した(コンペアマッチ)ときに呼び出される、割り込み関数があります。スマートコンフィグレータのルールとして、コード生成で作成される r_************_user.c には、割り込み発生時に呼び出される関数が生成されます。
グローバル変数宣言部分に、timer_sw をexternで宣言します。






r_Config_TAU1_7_interrupt()関数が、タイマーがカウント値に達した(コンペアマッチ)ときに呼び出される割り込み関数です。
timer_swの値に応じて状態を遷移、もしくはタイマーを止める処理を記述します。
タイマーを止めるときは、LEDの点灯をOFFにします。
ビルド&ダウンロードでデバッグ接続をしてマイコンを動作をさせると、ボタンを押したときにLチカがONになり、もう一度ボタンを押すとLチカがOFFになります。










□ 2.もう1つのタイマー動作、PWM出力

タイマーの動作に応じてポートをON/OFFさせる処理にしましたが、 タイマーで直接ON/OFFさせる方法があります。具体的にはPWM出力の機能があります。
では、さっそく使ってみましょう。
最初に、先ほど作成したタイマーのコンポーネントを削除します。







PWM出力を行うほうのポートを、「使用しない」に変更します。
今回はP65をタイマー出力(PWM出力)にします。





PWM出力は、タイマーを2つ使います。Duty50%固定であれば、タイマー1つで動作する方形波出力も使用可能です。
今回はPWM出力を使用します。

P65に対応するタイマーはTAU16ですが、TAU16を制御するためにTAU14を使います。
意味が分からないと思いますが、RL78マイコンの制限事項です。
詳細は、ユーザーズマニュアルに記載されている「6.4 タイマ・アレイ・ユニットの基本ルール」の「6.4.1 複数チャネル連動動作機能の基本ルール」を参照してください。

TAU14をダブルクリックしてコンポーネントの追加ダイアログを開き、PWM出力を選択して、 次へをクリックします。





リソースをTAU1_4に設定して、終了ボタンを押します。





クロック・ソースを「fCLK/2^8」にします。
PWM周期設定の周期設定を「500」、単位を「ms」にします。
割り込み設定のチェックを入れて、割り込みを有効にします。
PWMスレーブ選択設定の「チャネル6スレーブ」にチェックを入れます。
チェックを入れることでTAU16が有効になり、P65が出力可能になります。




PWMスレーブ設定のデューティは50%にします。
この数字を1〜99に変更すれば、LEDの点灯割合を変更できます。
割り込み設定は、チェックを入れて有効にします。





「端子」タブの「端子機能」を開き、「タイマ・アレイ・ユニット」の「TAU1」->「TAU16」を開きます。
TO16の「使用する」にチェックが入っていることを確認し、端子番号を「26」に変更します。
以上で設定完了です。コード生成を実行して閉じます。






生成されたConfig_TAU1_4.cを見てみると、生成された関数内にはTAU14とTAU16のレジスタが同時に記述されていることが分かります。






main()関数は、Config_TAU1_4のタイマを使うように記述を変更します。






Config_TAU1_4_user.c には、最初と同じようにグローバル変数を記述します。






r_Config_TAU1_4_channel6_interrupt()関数が、タイマーがカウント値に達した(コンペアマッチ)ときに呼び出される割り込み関数です。
最初と同じように、timer_swの値に応じて状態を遷移、もしくはタイマーを止める処理を記述します。
タイマーが止まると出力も止まるため、ポートの出力をOFFにする記述等は不要です。

ビルド&ダウンロードでデバッグ接続をしてマイコンを動作をさせると、最初と同じようにボタンを押したときにLチカがONになり、もう一度ボタンを押すとLチカがOFFになります。





次もマイコン入門の定番、デジタル割り込み入力を動かしてみましょう。




次のレポート
>> ルネサス RL78/F25 (6) デジタル割り込み入力の方法



前のレポート
<< ルネサス RL78/F25 (4) デジタル入出力の方法


スポンサードリンク

TOPへ戻る


ご利用条件
 Copyright (C)SUWA TSUSHIN NETWORK. All Rights Reserved.