体験的マイコン学習(PSoCで作るMyスペシャルマイコン編)


目次


Lチカ(割り込み方式)


この本で試したLチカ(割り込み方式)を紹介します


準備するもの

  • 写真① マイコンボード => 本の付属品(CY8C5868AXI-LP035)を使用します
  • 写真② USBケーブル(パソコンとスマホを接続する時に使用しているケーブルです)
ページトップ

プロジェクト作成

① PSocCreatorを起動し、File → New → Projectをクリックします

プロジェクト作成1

② Target deviceからデバイスを選択します。今回は使用する機器が一覧にないので、Launch Device Selectorを選択します

プロジェクト作成2

③ Select Deviceの中から、今回使用する(CY8C5868AXI-LP035)を選択しOKボタンをクリックします

プロジェクト作成3

④ Target deviceが選択できていることを確認し、Nextボタンをクリックします

プロジェクト作成4

⑤ Empty schematicを選択し、Nextボタンをクリックします

プロジェクト作成5

⑥ Workspace nameとProject nameに名前を入力し、Finishボタンをクリックします

プロジェクト作成6
ページトップ

回路図の設定

① 右側のメニューにある(Cypress → Ports and Pins → Digital Output Pin[v2.20])を選択します

回路図の設定1

② Digital Output Pin[v2.20]を回路図の中央までドラッグしてセットします

回路図の設定2

③ セットしたピンをダブルクリックします(※回路図をズーム倍率200%で表示しています)

回路図の設定3

④ 設定画面が開いたら、一番上のName項目に名前を入力してください(今回はLEDと入力します)
  また、General → Type → HW connectionのチェックを外してOKボタンをクリックしてください

回路図の設定4
ページトップ

ピンの設定

① 左側のメニューにある「プロジェクト名.cydwr」ファイルをダブルクリックしてください」(今回はPSoC5LP_LED1.cydwrとなっています)

ピンの設定1

② 設定画面が表示されたら、右側にあるPortをクリックし、P6[7]を選択してください

ピンの設定2
ページトップ

クロック・システムの設定

① 下側のタブメニューにある「Clocks」をクリックします

クロック・システムの設定1

② 画面が表示されたら、上側メニューにあるEdit Clock...をクリックします

クロック・システムの設定2

③ クロック設定画面が表示されたら、図の通り選択し、最後にOKボタンをクリックします

クロック・システムの設定3
ページトップ

ビルドする

プロジェクトをビルドします

① メニューの Build → Build PSoC5LP_LED1 をクリックしてください

ビルド1

② ビルドが成功すると、左側のメニューにファイルが追加されます
  また下側にあるOutputに、Build Succeeded: [ ビルドした日付 ] が表示されます

ビルド2
ページトップ

Cプログラムの作成

main.cを編集します

① 左側のメニューにある、Source Files → main.c をダブルクリックし、コード画面を開きます

Cプログラムの作成

② main.cの内容を下記のコードに書き換えてください

#include <project.h>

volatile uint32 gTick = 0;

// SysTick Interrupt Handler
CY_ISR(SysTick_Handler)
{
    gTick++;
}

// Delay Routine
void Delay(uint32 tick_delay)
{
    uint32 tick_entry = gTick;
    // wait for tick
    while((gTick - tick_entry) < tick_delay);
}


int main()
{
    /* Place your initialization/startup code here (e.g. MyInst_Start()) */

    // Set the SysTick Interrupt Vector (=15) in Vector Table in RAM
    CyIntSetSysVector(15, (cyisraddress)SysTick_Handler);
    // Start SysTick Periodic Interrupt
    SysTick_Config(BCLK__BUS_CLK__HZ/1000); // SysTick=1000Hz(1ms)
    // Enable Interrupt Detection
    CYGlobalIntEnable; // uncomment

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

        LED_Write(~LED_Read()); // Toggle LED Terminal
        Delay(500); // 500ms
    }
}

ページトップ

実行する

最後に実行を行います

① メニューのBuild → Build sampleをクリックして、ビルドを行ってください

ビルド3

② ビルドが完了したら、メニューの Debug → Program をクリックして実行してください

実行

③ ボード上のLEDが点滅すれば成功です

LEDサンプル
ページトップ