2019-10-05 LPC > LPCXpresso54628 > Lチカ > SDK Exampleを使う例 > Quickstart Panel | プロジェクトの作成、ビルド、デバッグ、停止まで | USER LEDsのポートとピン


動作環境
OS: Ubuntu 18.04 LTS
基板: LPCXpresso54628
IDE: MCUXpresso IDE v11.0.1 [Build 2563] [2019-09-01]

概要

  • 基板の初期動作としてLチカをする
  • SDKにExampleがあるので、それを使う
    • 自前実装には様々なAPIの使用を理解することになるため、現段階ではこれでいいとする

Quickstart Panel

プロジェクト作成、ビルド、デバッグの開始にはQuickstart Panelを使う。

Quickstart PanelはC/C++パースペクティブの場合、左下に表示される。
(パースペクティブの切替については、「2019-10-05 LPC > LPCXpresso54628 > IDE > Project Explorerがある画面に移る > Open Perspective > C/C++ 」を参照)。

手順

手順概要

  1. SDK exampleのインポート
  2. ソースを一部修正
    • SWの検知をやめる
    • LEDのインターバルをゆっくりにする
  3. ビルド
  4. デバッグ実行
  5. デバッグの停止

1. SDK exampleのインポート

  • `1-1 Quickstart Panelの「Import SDK example(s)...」を選択する

  • `1-2 Board and/or Device selection page画面にて、lpcxpresso54628を選択して「Next]を選択する

  • `1-3 Import projects画面にて
    • Project name prefixを指定する
      • 例: 191005_2223_ledFlash (日付と日時をつけてみた)
    • driver_examples > gpio > gpio_led_outputを選択する
    • Nextを選択する

  • `1-4 Advanced SettingsにてFinishを選択する

以上でサンプルコードが含まれるプロジェクトが作成され、gpio_led_output.cが開いた状態になる。

2. ソースを一部修正

インポートしたExampleのソース「gpio_led_output.c」には以下の二点の問題がある。

  • A. SW押下処理も入ってるが、チャタリングのことを考慮してない
  • B. SW押下検知処理のインターバルが短い (10msec程度?)

以下のように変更する。

  • A. SW押下処理はやめる
  • B. インターバルを100倍に遅くする

Aに対する変更はwhile()ループを下記のようにする。

    while (1)
    {
        port_state = GPIO_PortRead(GPIO, APP_SW_PORT);
        //if (!(port_state & (1 << APP_SW_PIN)))
        //{
        //    PRINTF("\r\n Port state: %x\r\n", port_state);
            GPIO_PortToggle(GPIO, APP_BOARD_TEST_LED_PORT, 1u << APP_BOARD_TEST_LED_PIN);
        //}
        delay();
    }

Bに対する変更はdelay()の中身を以下のようにする(100倍のループ数にする)。

    //for (i = 0; i < 100000; ++i)
    for (i = 0; i < 10000000; ++i)
    {
        __asm("NOP"); /* delay */
    }

3. ビルド

Quickstart PanelのBuildをクリックする。

4. デバッグ実行

Quickstart PanelのDebugをクリックする。
Probes discoverdと表示され、デバッグ用プローブの選択を要求される。
LPC-Link2 を使う設定をそのままにして、OKを選択する。

Confirm Perspective Switchダイアログでパースペクティブのスイッチを聞かれる場合がある。その場合、Switchを選択してもいいし、しなくてもいい。
今回は選択する、とする。

デバッグ直後はプログラムが停止状態のため、Resume All Debug Sessionsをクリックして動かす。

User LEDsのLED3が1秒?程度のインターバルで点滅する。

ペンの先がLED3。

5. デバッグの停止

Terminate All Debug Sessionsを選択して、デバッグを停止する。
デバッグは停止するが、プログラムは動き続けるようだ。
(停止設定は将来調べることになるかもしれない)

資料 > GPIOのポートとピン番号

UM11035
LPCXpresso546x8/540xx/54S0xx Board User Manual
Rev. 2.1 — 7th January 2019
https://www.nxp.com/docs/en/user-guide/UM11035.pdf

Exampleにて使用されるポートとピン番号の説明がある。

p10

P2-2(D9), P3-3(D11) and P3-14(D12)

p10

SW2, SW3, SW4 : ISP / User buttons
IPS2 (P0-6), ISP1(P0-5), ISP0(P0-4)

p6
User LEDsの場所が基板右側として掲載されている。