ここでは,次のことを行います.
- CS+を使って新しいプロジェクトを作成する.
- タクトボタンを押したときLEDを点灯し,離したとき消灯するプログラムを作成する.
- E1を通じてマイコンへダウンロードし,実行する.
まず,CS+上に新しいプロジェクトを作成します.「CS+」をスタートメニューから選択します.
起動すると,「ワンポイント・アドバイス」が現れますので,「OK」ボタンを押します.なお,このアドバイスを不要と感じる場合,「起動時に表示しない」チェックボックスを押します.
CS+が立ち上がりましたら,はじめに「新しいプロジェクトを作成する」を選択します.
プロジェクトを作成するとき,次の4つを決める必要があります.
- MCU名
- プロジェクトの種類
- プロジェクト名
- プロジェクトの作成場所
今回は,1はKTM-03で用いているMCUである「R5F562N8BDFB」,プロジェクトの種類を「C++アプリケーション(CC-RX)」,プロジェクト名を「Sample」,プロジェクトの作成場所を「C:\Users\ashida\Documents」とします.この場合,下に示すようにします.
デフォルトのウインドウ構成は下の通りです.最上部にメニューとツールチップ,左側にプロジェクト・ツリー,中央上部にプロパティ,中央下部に出力結果が表示されます.
では次に,ソースを変更します.プロジェクト・ツリーより「Sample.cpp」をダブルクリックするとファイルが開かれます.
Sample.cppファイルを編集し,LED消点灯プログラムを作成します.今回作成するプログラムの使用を詳しく説明します.まず,使用するデバイスは次のとおりです.そのデバイスがMCUのどのピンに接続しているかをカッコ内に示します.
-
メインマイコンボード上のLED7(PE4)
- メインマイコンボード搭載ボード上のSW1(P54)
LED7のアノードには電源と接続されており,カソードにはMCUの端子と接続されているため,MCUの端子PE4をHigh出力すると消灯し,Low出力すると点灯します.また,SW1が押されるとMCUの端子54はLowに,離されるとHighになるように設計されています.
以上のような仕様のもと,SW1を押したらLED7が点灯し,離したら消灯するプログラムを作成します.下のリストに,このプログラミング例を示します.
/***********************************************************************/ /* */ /* FILE :Main.c or Main.cpp */ /* DATE :Tue, Oct 31, 2006 */ /* DESCRIPTION :Main Program */ /* CPU TYPE : */ /* */ /* NOTE:THIS IS A TYPICAL EXAMPLE. */ /* */ /***********************************************************************/ //#include "typedefine.h" #include "iodefine.h" #ifdef __cplusplus //#include // Remove the comment when you use ios //_SINT ios_base::Init::init_cnt; // Remove the comment when you use ios #endif void main(void); #ifdef __cplusplus extern "C" { void abort(void); } #endif static void _initLED(void); static void _initSW(void); void main(void){ /* LEDを初期化する */ _initLED(); /* SWを初期化する */ _initSW(); /* 無限ループ */ while(1){ /* SWが押されたら */ if(PORT5.PORT.BIT.B4 == 0){ /* LEDを点灯させる*/ PORTE.DR.BIT.B4 = 0; } /* SWが離されたら */ else{ /* LEDを消灯させる */ PORTE.DR.BIT.B4 = 1; } } } #ifdef __cplusplus void abort(void) { } #endif static void _initLED(void){ /* PE4を出力端子として設定する */ PORTE.DDR.BIT.B4 = 1; } static void _initSW(void){ /* P54を入力端子として設定する */ PORT5.DDR.BIT.B4 = 0; } |
Sample.cppに上記のプログラムをすべて入力したら,次にビルドを行います.ビルドとは,CやC++言語で書かれたプログラムをマイコンが理解できるマシン語に変換する作業です.CS+では,下の図のように「ビルド」メニュー⇒「ビルド・プロジェクト」サブメニューを選択します.なお,ショートカットとして「F7」が割り当てられていますので,慣れてきたらこちらのボタンを押してください.
ビルドに成功すると,出力結果に次のようなメッセージが現れます.
ビルドに成功すると,出力結果に次のようなメッセージが現れます.
========== 全ビルドの開始(2012年4月3日 19:11:21) ========== ------ ビルド開始(Sample, DefaultBuild) ------ >DefaultBuild\Sample.lib Library Generator Completed >dbsct.c >intprg.c >resetprg.c >sbrk.c >vecttbl.c >Sample.cpp >DefaultBuild\Sample.abs DefaultBuild\Sample.mot ** L1100 (W) Cannot find "L" specified in option "start" Optimizing Linkage Editor Completed ------ ビルド終了(エラー:0個, 警告:1個) ------ ========== 終了しました(成功:1プロジェクト, 失敗:0プロジェクト)(2012年4月3日 19:11:22) ========== |
次に,E1を使うための初期設定をします.初期値では,プロジェクトツリーに「RXシミュレーション(デバッグツール)」があるので,これを右クリックし,「使用するデバッグ・ツール」⇒「RX E1(JTAG)」を指定します.
次に,RX E1(JTAG)をマウスの左ボタンでダブルクリックすると,画面中央のプロパティが現れます.その中に,クロック⇒メイン・クロック周波数[MHz]に「12」,動作周波数[MHz]に「25」を入力し,保存ボタンを押します.
次にマイコンと開発用パソコンと接続します.マイコンの動作モードを設定するためのスイッチであるSW2がマイコンボードにあります.SW2の模式図を下に示します.
1から4までのスイッチを役割を次の表に示します.
今回,MCUを次のように設定します.
- シングルチップモード(1⇒OFF,2⇒OFF)
- スモールエンディアン(3⇒ON)
- デバッグ時(4⇒ON)
よって,次のようにSW2を設定する.
次に,E1の端子をマイコンボードのJ4端子に接続します.接続できる方向が定まっているので,それに合わせて接続してください.次に,E1のUSB端子を開発パソコンに接続します.はじめて接続した場合,ドライバをダウンロードするため,開発パソコンをネットワークに接続されている状態にしてください.ダウンロード後に,次のようにインストールが行われます.うまくいくと,E1のACTランプが緑色になります.
次に,電源ケーブルをマイコンボード搭載ボードに接続し,メインマイコンボード搭載ボードにあるSW4スイッチをONにします.そして,「デバッグ」メニュー⇒「デバッグ・ツールへの接続」サブメニューを選択すると, MCUとE1が接続されます.
E1とMCUの通信が確立しましたら,プログラム,正確に言えばマシン語を開発パソコンからMCUへダウンロードします.「デバッグ」メニュー⇒「ビルド&デバッグ・ツールへダウンロード」サブメニューを選択してください.
ダウンロードに成功しますと,Sample.cppのmain関数の先頭アドレスにプログラムカウンタ(PC)が設定されます.現在のPCの位置はプログラム中の矢印で表されます.次にプログラムを実行するには,上部ツールチップの「再生」ボタンを押します.
実行中にはCS+ウインドウの下部にあるステータスに「Run」となります.次に,実行中にSW1を押すとLED7が点灯し,離すと消灯することを確認してください.最後に,停止するには上部ツールチップに「停止」ボタンを押します.