LPC812-MAXを使ってみた(1st)

キャンペーンで1ユーロで購入できるLPC-812を購入してみましたぁ。 /media/uploads/y_notsu/p1000826_mini.jpg

Technical Pageは、 https://mbed.org/handbook/mbed-NXP-LPC800-MAX に記載されています。 外側にArduino互換のピン配置、内部にmbed/LPC Xpresso互換の ピン配置になっています。Arduino互換といっても、おそらくデジタル出力は 5Vではなく、3.3Vになってると思います(後日、調査します)。

mbed I/F環境になるために、LPC11U35がついています。 そのため、USBでPCとつなげると、mbed(LPC1768やLPC11U24)のように 外部USBメモリとして認識されます。 /media/uploads/y_notsu/mbed_device.jpg

コンパイラ画面では、デバイスにLPC800-MAXが追加できるように なります。 /media/uploads/y_notsu/compiler_1.jpg

従来のmbedと違うところは、作成したbinファイルをドラッグ&ドロップで Donloadすると、一旦接続が切れて再度mbed(LPC800-MAX)が表示 されますが、binファイルは消えてなくなります(ぉ I/F ICのほうに記録されてファイルシステムからは見えなくなるんでしょうね。

さて、まずはLチカから。 基板にはUSER LEDが1個乗っています。3色LEDなんですが

include the mbed library with this snippet

#include "mbed.h"
DigitalOut myled1(LED1); //Blue

int main()
{
 while(1)
 {
    myled1=1;
    wait(0.2);
    myled1=0;
    wait(0.2);
  }
}

のように、従来のmbedのHellow World風なCodeを書くと、 LEDがBlueで点滅します。

これをLED2, LED3に変えてやることで、 LED2 : Green LED3 : Red と色を変えてやることができます。

注意:ただし、定義のところは1個だけ定義したとき正常に動きます。 よい例(1):

include the mbed library with this snippet

#include "mbed.h"
DigitalOut myled3(LED3); //Red

int main()
{
 while(1)
 {
    myled3=1;
    wait(0.2);
    myled3=0;
    wait(0.2);
  }
}

よい例(2):

include the mbed library with this snippet

#include "mbed.h"
DigitalOut myled3(LED3); //Red
DigitalOut myled1(LED1); //Blue

int main()
{
 while(1)
 {
    myled3=1;myled1=0;
    wait(0.2);
    myled3=0;myled1=1;
    wait(0.2);
  }
}
このときは、赤と青が交互に点灯します。

悪い例(1):

include the mbed library with this snippet

#include "mbed.h"
DigitalOut myled3(LED3); //Red
DigitalOut myled1(LED1); //Blue

int main()
{
 while(1)
 {
    myled3=1;myled1=0;
    wait(0.2);
    myled3=0;myled1=0;
    wait(0.2);
    myled3=0;myled1=1;
    wait(0.2);
    myled3=0;myled1=0;
  }
}

違うところは、消灯のコードを入れただけです。 このコードのときは、LED赤の点灯とLED青の点灯の間はLED消灯するはずなのですが、 なぜか白っぽく青も赤も点灯してしまうのです。

ただのLチカだけなのに、OFFがうまくできないと。。。これはバグですかね。 まぁ、ちょっとこれから色々いじっていきたいと思いますわ。 ひとまず、ファーストインプレッションでしたぁ。


Please log in to post comments.