PSoC™ Creator [Hands On タイマー編]
PSoC™を初めて使用する組込ソフトウェア技術者向けにPSoC™ Creatorの基本的な機能の使用方法を説明します。
今回は、「CY8CKIT-149」に搭載された LED をタイマーを使用して1秒毎に点滅させるアプリケーションの構築する手順を Hands-On 形式で説明します。
Hands On で使用する評価ボードについて
Hands On で使用する評価ボードです
・評価ボード名称:CY8CKIT-149
・搭載デバイス:CY8C4147AZI-S475
基板上のほとんどのコンポーネントは、シルク印刷でピン名が記載しています。
PSoC™ Creatorワークフロー
PSoC™ Creatorを使用すると以下のワークフローで開発を行うことができます。
プロジェクトの作成
PSoC™ Creatorでプロジェクトを作成します。
プロジェクト作成の詳細はプロジェクトの作成編を参照してください。
①PSoC™ Creatorを起動します。
②File>New>Projectを選択します。
③Target DeviceをPSoC 4>PSoC 4100S Plusを選択します。
④Nextを選択します。
⑤プロジェクトを生成するワークスペース、パスおよびプロジェクト名を指定します。
Workspace name : workspace
Location : C:PSoC
Project name : Design02
⑥ Finish ボタンを選択してプロジェクトを生成します。
コンポーネントの設定
コンポーネントの挿入
使用するコンポーネントを回路図に挿入していきます。
Component Catalogから下記の各コンポーネントを選択して回路図にドラッグ&ドロップします。
① Digital > Functions > Timer Counter (TCPWM mode)
② Ports and Pins>Digital Output Pin
③ System> Interrupt
④ System> Clock
LED (Pin_1)
①回路図の「Pin_1」をダブルクリックします。
②名称(Name)を「LED」に変更します。
③HW connectionの「✔」を外します。
④LEDを正論理でドライブするため、初期値 (Initial drive state) は「 Low (0)」 に設定します。
⑤「OK」を選択します。
timer_clock (Clock_1)
①回路図の「Clock_1」をダブルクリックします。
②名称(Name)を「timer_clock」に変更します。
③Clock typeを「New」に設定します。
④Frequencyを「1 kHz」に設定します。
⑤「OK」を選択します。
Timer_INT (isr_1)
①回路図の「isr_1」をダブルクリックします。
②名称(Name)を「Timer_INT」に変更します。
③「OK」を選択します。
Timer (Timer_1)
①回路図の「Timer_1」をダブルクリックします。
②名称(Name)を「Timer」に変更します。
③Configruationタブにて「Timer/Counter」に設定します。
④「Timer/Counter」タブを選択します。
⑤Periodを「500」に設定します。
⑥「OK」を選択します。
コンポーネントの接続
コンポーネント設定終了後に、以下の各ピンを
接続します。
① timer_clock の 出力ピンと Timer の入力ピン(clock)
② Timer の出力ピン(interrupt)と Timer_INT の入力ピン
接続は、以下の手順で行います。
Wire Tool アイコンを選択して結線モードになると、ポインタのシェープが + に変わります。
ポインタがコネクタの上に来た時にシェープが
+ から X に変わりますので、そこでクリックをして結線を固定します。
ピンの割り当て
設定した各コンポーネントにPinを割り当てていきます。
各Pin配置は 「Hands On で使用する評価ボードについて」をご参照ください。
①「Pins」をダブルクリックします。
②コンポーネントのPorts/Pinsを設定します。
LED: P3[4] (pin22)
アプリケーションの作成
ここまでの作業でPSoC™ Creatorがアプリケーションのスケルトンコード(空のmain関数、startup、必要なドライバなどのソースコード)を生成するために必要な情報がすべて入力されました。
メニューから
Build > Generate Application
を選択して、アプリケーションを生成します。
【ショートカット】
あるいは、コマンドアイコンからGenerate Application を選択してアプリケーションを生成することも可能です。
ソースコードの記述
①「main.c」をダブルクリックしてファイルを開く。
②ソースコードを作成します。最初記述されていたテキストを全て消去してください。
下記のソースコードをコピーして貼り付けてください。
#include "project.h"
#define LED_OFF (0u)
#define LED_ON (1u)
int Time_flag = 0 ;
CY_ISR(timer_isr)
{
Time_flag ++ ;
Timer_ClearInterrupt(Timer_INTR_MASK_TC);
}
int main(void)
{
CyGlobalIntEnable; /* Enable global interrupts. */
Timer_Start() ;
Timer_INT_StartEx(timer_isr) ;
Time_flag = 0 ;
for(;;)
{
if ((Time_flag & 0x01) != 0){
LED_Write(LED_ON) ;
}
else{
LED_Write(LED_OFF) ;
}
}
}
プロジェクトの書き込み
①プロジェクトを書き込むため、評価ボードをPCへ接続します。
②「Build」をクリックしプロジェクトをビルドします。
無事ビルドが完了すると、Output領域に「Build Succeeded」がレポートされます。
③「Program」をクリックし、ターゲットボードに書き込みを行います。
Output領域に「Device ‘デバイス名’ was successfully programmed 」がレポートされれば書き込み完了です。
動作確認
「CY8CKIT-149」に搭載されたLEDが1秒毎に点滅します。
担当エンジニアからの一言
今回は、タイマーを使用したアプリケーションの作成を説明しました。
コンポーネントのタイマーを使うことにより、簡単にタイマーを作成し動作させることができます。
次回は、UARTを使用したアプリケーションを説明します。
PSoC™ Creatorはこちらから