> 作業効率UP!! オススメのモバイルモニターを紹介

【RL78】CS+を使ってプログラム開発の手順を学ぶ

当ページのリンクには広告が含まれています。
  • URLをコピーしました!

ルネサスが開発したCPUは、自動車や産業、通信など幅広い分野で使用されています。

販売されているRL78シリーズの中でRL78/G13は、低消費でA/Dコンバータや不揮発メモリ、安全機能などを搭載した高性能なスタンダードな汎用マイコンです。

今回はこのRL78/G13に実際にプログラムを書き込みして、LEDを点滅させるまでの開発手順についてみていきたいと思います。

RL78のプログラム開発手順

CS+を実行してプロジェクトを作成する

事前にインストールしていたCS+ for CCを起動します。開発環境の設定手順については、こちらからアクセスして確認することができます。

アプリケーションを起動すると次の画面が表示されます。

メニューバーから[ファイル] > [新規作成] > [新しいプロジェクトを作成]の順に進みます。

マイクロコントローラーをRL78、使用するマイクロコントローラーをR5F100GE(48pin)、プロジェクト名を任意の名前にします。

コード機能を使用する

コード生成は、マイクロコントローラーが提供している周辺機器を制御する上で必要なソースコードを出力してくれる機能です。GUI画面で設定した内容に応じてプログラムを出力してくれるので、面倒なレジスタ設定をガリガリと書く手間が省けます。

CS+がプロジェクト・ツリーにコード生成が表示されないことがあります。コード生成のプラグインが有効になっているか確認をしてみましょう。

メニューバーから[ツール] > [プラグインの管理] の順に進みます。追加機能のタブを選択して、コード生成に関する項目に✔︎マークを入れます。

プラグインの管理を更新した後は、変更内容を反映させるためにCS+を再起動します。プラグインはCS+を起動した直後に読み込みがさせるためです。

初めにクロック発生回路から

プロジェクト・ツリー内にあるコード生成(設計ツール)を展開します。クロック発生回路を選択します。

初めに端子割り当て設定を行います。端子配置を変更する場合は、該当のPIORビットにチェックを入れて確定するボタンをクリックします。

この設定は1度行うと変更ができないので気をつけてください。端子配置の変更が必要になると、再度プロジェクトの新規作成をしてやり直す必要があります。

今回は細かいビットの割り当ては考えずに、変更しないで確定するボタンをクリックします。

入出力制御をするためにポート機能の設定

次にポート機能を選択します。デフォルトの設定は全て使用しないになっています。

ポート1のビットが5V出力してLEDが点灯する為に、ポート1を全て出力を選択します。

最後にコード生成の実行

設定が完了したら、コード生成ボタンをクリしックします。すると、main.cとhdwinit.asmが除外されて、コード生成ファイルが追加されます。main.cはr_main.cに置き換わり、hdwinit.asmはr_hdwinit.asmに置き換わります。

コード生成によって作られたファイルは、先程行った周辺機器の機能設定に応じたソースコードが自動で生成されます。

プログラムの実装をする

コード生成すると、関連するヘッダやファイルが複数作成されますが、その中にあるr_main.cを開いてコードを実装します。

コメントがたくさん書いてあり、最初みた時はなんか難しそうな先入観が芽生え、拒否反応を覚えました。中身を理解すればたいしたことはありませんでした。

コードを書くことができる範囲が決まっていて、/* Start user code 〜 */ と /* End user code 〜 */というコメントの間にプログラムを記述してください。

このコメントの範囲外の場所にプログラムを記述した場合、コード生成を実行すると統合開発環境がお構いなしに上書きで消してしまいます。せっかく記述したプログラムが消えないように、上記のお約束は守るようにしましょう。

Main関数にLED点滅プログラムを記述する

さっそく、LEDを点滅させるプログラムを記述しましょう。Lチカと言ったら誰もが最初に通る道でお馴染みですよね。

ポート1のビット0を一定間隔で出力をON/OFFさせて、LEDを点滅させます。プログラムはこちらです。
void main(void)
{
    R_MAIN_UserInit();
    /* Start user code. Do not edit comment generated here */
    while(1U)
    {
        long j;
        //ポート1をON	
        P1=0B00000001;;
        for(j=0;j<200000;j++);
        //ポート1をOFF	
        P1=0B00000000;
        for(j=0;j<200000;j++);
    }
    /* End user code. Do not edit comment generated here */
}

RL78はポート1〜15までの入出力ポートがあり、各ポートは0〜7までのピンを持っています。プログラムでそれらのポートを呼ぶ時は、P(ポート番号)とします。

点灯させたいビットをONにしたい時は1を指定し、OFFにしたい時は0にします。プログラムで表現するときは、2進数または16進数で書きます。サンプルは2進数にしています。

先程はポートからビットの出力を制御する方法を紹介しましたが、直接ビットを指定することもできます。その場合は、P(ポート番号)_bit.no(ビット番号)です。

 P1_bit.no0 = 1; または P1_bit.no0 = 0;

ON/OFFの間にwaitを入れてLEDが点滅するようにします。今回は、for文で200000回ループ処理を実行させて待機させています。

ここまできたらビルド・プロジェクトを実行します。

ビルドは簡単です。メニューバーの[ビルド] > [ビルド・プロジェクト]をクリックします。

出力画面にエラーが表示されずに正常に終了すれば完成です。

ビルドはショートカットキーのF7で行えるので、活用するとちょっと作業が早くなりますよ。

マイコンフラッシュへ書き込み

Renesas Flash Programmerを起動します。メニューバーから[ファイル] > [新しいプロジェクト作成] を選択します。

マイクロコントローラーをRL78にし、プロジェクト名を任意の名前を入力します。書き込みエミュレーターを選択して接続ボタンをクリックします。

プログラムファイルの参照をクリックして、プロジェクトフォルダ内のDefaultBuildフォルダ内にあるmotファイル(出力コード)を選択します。

マイコンはエミュレーターを介してパソコンと接続しておく必要があります。また今回はエミュレーターではなく、別電源をマイコンに供給をしています。

さあ、最後にスタートボタンをクリックします。クリックして終了すると、画面に正常終了の文字が表示されれば完了です。

最後に

エミュレーターとの接続を解除して、マイコンに電源を供給するとLEDが点滅します。自分が作成したプログラムでLEDが点灯するだけで感動しますね。

次回はUART通信のプログラムについて記事を書こうと思います。

以上、最後まで読んでいただきありがとうございました。

よかったらシェアしてね!
  • URLをコピーしました!