でばいすの山小屋

デバイスとかクラウドを実験中。IoTのふもとあたりをうろうろ。

PSoC 4 BLE で、Lチカしてみる(2)

yamagoya.hatenablog.jp
前回は、コードによって点滅させましたが、せっかくのPSoCですので、回路を使って点滅させます。

1. プロジェクトの作成

プロジェクトを作成します。
f:id:blgkns:20150804010820p:plain:w320

2. コンポーネントを配置する

2-1. コンポーネントの配置

f:id:blgkns:20150804010821p:plain:w320
Component Catalog から、
・Clock
・PWM(TCPWM mode)
・Digital Output Pin
を持ってきて、配置する。
コンポーネントがつながるように気をつけてください。

2-2. Clockコンポーネントの設定

f:id:blgkns:20150804010822p:plain:w320

2-3. PWM(TCPWM mode)コンポーネントの設定

f:id:blgkns:20150804010823p:plain:w320

2-4. Digital Output Pinコンポーネントの設定

f:id:blgkns:20150804010824p:plain:w320

2-5. 配線

f:id:blgkns:20150804010825p:plain:w320
LED02.cydwr を開き、LEDを P2[6] につなぐ
「Generate Application」ボタンを押す

3. コードを書く

Workspace Explorer から main.c を、開く。
PWM_Start(); を1行足して....

#include <project.h>

int main()
{
    CyGlobalIntEnable; /* Enable global interrupts. */

    PWM_Start();

    for(;;)
    {
        /* Place your application code here. */
    }
}


4. 動作の説明(ざっくり)

コードは、PWMを開始だけして、あとはなにもしていません。
点滅は、回路側で行っています。
PWMは1000カウント周期で動作します(Priodの値)。Clockが1KHzなので、1秒周期で繰り返し動作します。クロックがCompare値より小さい時は、LEDは、Lowになり、大きいときは、Highになります。

Programボタンを押して、実行
設定やコードに間違えがなければ、LEDが点滅を始めます。

5. おまけ

PWMの設定を変えてみます。
f:id:blgkns:20150804010826p:plain:w320
Compareの値を小さくすると、間隔はそのままに、点灯時間が短くなります。