PSoC4 PioneerKitでLチカ

PSoC4 Pioneer Kitでサンプルベースで動かしてみることはできましたので、次にゼロからLチカしてみました。

PSoC Creatorを起動し、「File」→「New」→「Project」で新しいプロジェクトを生成します。冒頭に「Empty Templetes」がありますので、その中から「Empty PSoC4 (CY8C42*) Design」を選択、Name:にプロジェクト名を入れます。

Lchika1

「OK」を押すと空の回路図が表示されます。

Lchika2

まず、LチカのためにTimerブロックを置きます。右側に並んでいる機能ブロックの一覧から「Digital」→「Functions」→「Timer」を選ぶと、右下にブロックのプレビューが表示されるので、これを回路図上にドラッグ&ドロップします。

Lchika3

さらに以下の作業をします。

  • 出力端子を作るために「Ports and Pins」→「Digital Output Pin」を選択して、適当な場所にドラッグ&ドロップします。
  • Timerの出力を2分周してLEDの点灯デューティーを50%にするため、「Digital」→「Logic」→「Toggle Flip Flop」を選択して、Timerと端子の間にドラッグ&ドロップします。

Lchika4

次にブロック間を結線します。

  • HFCLKの位置を左側に少しずらして、HFCLKをTFFにも接続できるようにします。
  • 左上のワイヤを選択して、HFCLKをTFFのCLKにも接続します。
  • Timerのtc(Terminal Count出力)をTFFのtに接続します。
  • TFFの出力のqを出力端子に接続します。

Lchika5

次に、個々のブロックの設定を行います。

まず、HFCLKをダブルクリックすると、クロック源の設定画面が開きます。

Lchika6

初期設定はHFCLKの24MHzになっていますが、ここでは最終的にT-FFで2分周した後で1Hzを得ればよいので、より低い周波数に変更します。

Sourceのプルダウンメニューを開くと、LFCLKの32kHzが出てくるので、こちらに変更します。

Lchika7

変更したら、「OK」を押して抜けます。

同様にTimer_1をダブルクリックします。

Lchika8

32kHzを分周してT-FFに入力する2Hzを生成するため、以下の変更を行います。

  • Resolutionを16bitに変更
  • Periodを16000に変更

Lchika9

ここで、このタイマーブロックの名前(インスタンス)が「Timer1」になっていることに注意してください。この名前が後で main() の中で必要になってきます。

同様に端子のシンボルをダブルクリックして端子の設定を行います。

Lchika10

Nameの所に適当に端子の名前をつけます。

Lchika11

次に、端子の割付を行うために、「Project」→「プロジェクト名 Resources」で端子配置図を出します。

Lchika12

ひらくと、以下のような画面になります。

Lchika13

右上の赤丸部分のプルダウンメニューを開くと、ポートが選択できますので、回路図を参照して青色LEDのP0[3]を選択します。

これで回路は完成なので「Project」→「Export to IDE (Lchika)」でAPIを生成します。

Lchika14

 Buildができると、uVisionにエキスポートするかを聞かれます。

Lchika15

しかし、ここはCancelで大丈夫のようです。生成できたら、ファイルがたくさん追加されます。

Lchika16

次に、main()にカウンタ(Timer1)を初期化・起動するためのコードを追加します。Source Files の中から main.c を選択して、main()の直後にTimer1を起動するコード(赤で囲んだ部分)を追加します。

Lchika17

これでLチカは完成ですので、BuildしてProgramすると概ね1秒に1回点滅します。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)