0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

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

Last updated at Posted at 2019-10-05
動作環境
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++ 」を参照)。

Screenshot from 2019-10-05 22-11-21.png

手順

手順概要

  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]を選択する

Screenshot from 2019-10-05 22-21-13.png

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

Screenshot from 2019-10-05 22-24-18.png

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

Screenshot from 2019-10-05 22-25-05.png

以上でサンプルコードが含まれるプロジェクトが作成され、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を選択する。

Screenshot from 2019-10-05 22-39-39.png

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

Screenshot from 2019-10-05 22-39-56.png

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

Screenshot191005_2243.png

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

ペンの先がLED3。
IMG_1125.JPG

5. デバッグの停止

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

Screenshot191005_2255.png

資料 > 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の場所が基板右側として掲載されている。

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?