Getting Started - Lチカのコードを見て、動かしてみる

さて、Installが終わったら実際に何か動かしてみる事にしたい。PSoC Creatorを立ち上げ(Photo12)、まずはLチカのコードを見てみる事にする。Start Pageの中にExamples and Kitsという項目があるので、これを展開すると出てくる"Blinking LED.cywrk"がLチカのプロジェクトである(Photo13)。そこでこれをクリックすると"Exampleのプロジェクトをどこに展開するか"を聞かれる(Photo14)ので、適当なディレクトリを選ぶと、ファイルが全部コピーされ、自動的にファイルが構成される(Photo15)。

Photo12:PSoC Creatorの欠点は、それなりに大画面でないと全部表示されないこと。作業画面はFull HD(1920×1080pixel)以上のモニターをお勧めする。あと後述の理由で、データシート表示用にもう1~2画面あると便利

Photo13:ここに出てくる5つのプロジェクトは、いずれもPSoC 4 Pioneer Kit GuideというPDFに細かな説明が出ているので、他のプロジェクトはこれを読みながらソースを展開することをお勧めする

Photo14:Exampleそのものは直接アクセスするのでなく、指定したディレクトリにそのExampleをコピーして、これを触る形になっている。デフォルトはマイドキュメントの下

Photo15:右側のWorkspace Explolerに注目。"Generated Source"の下に、関連するソースが全部展開される

次に実際にソースを見てみるわけだが、まず最初に見るべきは「TopDesignタブ」(Photo16)。これはPSoCの内部デバイスをどのように有効化し、どんな結線で使っているかを示している

Photo16:ここでPWMブロックをクリックすると、PWMのConfiguration画面が表示されるので、さらに細かいパラメータを設定できる

今回の場合、PWMユニットを1つ有効化し(Clockソースは内部の10KHz)、PWM出力をオンボードのLEDに繋いでいる事が判る。そこで詳細パラメータを見てみると(Photo17)、今回の場合、10KHz入力をカウントしながら次第に出力を上げてゆき、10000になったら0に戻すという三角波を発生させている。10KHzで1万カウントだから、要するに毎秒1回づつの頻度で0に戻るわけだ。

Photo17:PWMブロックをクリックすると出てくるのがこの画面。左下の"Datasheet"ボタンを押すと、このPWMブロックの詳細仕様がPDFで表示される

次にBlinkng LEDを開いてみると(Photo18)、ピンの接続具合が判る。今回の場合、Photo16でPWM出力にあたるPin_BlueLEDが、P0(3)に割り当てられているのが判る。

Photo18:本当はこれ、PSoC 4のピン配置ではなく、Pioneer Kitのピン配置で示してくれると非常に助かるのだが、流石にそれは無茶振りか

この割り当ては、Photo18の左にある割付画面(Photo19)で、ここで任意に設定できるというわけだ

Photo19:他のピンにすることも可能なのだが、このP0(3)にLEDが接続されているので、別のピンにする場合は別のLEDを用意しなければいけない

ということで最後にプログラムを見てみると(Photo20)、非常にシンプルであることが分かる。スタートアップルーチンがmain()であるが、ここでまずClockStart()でクロック信号の送出を開始、次いでPWMStart()でPWMブロックも稼動を開始する「だけ」である。後はLEDの点滅はPWMブロックが勝手にやってくれるので、CPUは何もせずに無限ループしている、というきわめてわかり易いコードである。

Photo20:ここまでシンプルなLチカコードも珍しい気がする

ちなみにプログラムのBuildは、Build→Build Blinking LED(Photo21)で行なえる。問題なくBuildできたら、単独で走らせるならDebug→Program(Photo22)、デバッガを使って追いかけるならDebug→Debug(Photo23)でそれぞれ行なえる。

Photo21:ビルド中の状態は画面下側の"Output"に表示される

Photo22:これを選ぶとUSB経由でプログラムをロード→そのまま実行となる

Photo23:デバッガを起動する場合はこちら

PSoC Creatorのデバッガは標準的なIDEとして機能的にはまったく問題を感じないもので、ステップ動作やブレーク/トレース/ウォッチなどがきちんと行なえる。必要ならメモリダンプとかレジスタの値も参照できるし、アセンブラレベルでのソース追跡も可能だ。

このLチカコードことBlinkg LEDの場合、デバッグ情報を含まないRelease BuildでFlash占有が1264バイト(Flashそのものは32KB搭載)、SRAM使用量が228バイト(同4KB)、デバッグ情報を含むDebug Buildでもそれぞれ2567バイト/285バイトとかなりコンパクトに収まっている。