lbed/12-LPC810への移植
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
単語検索
|
最終更新
|
ヘルプ
]
開始行:
[[lbed]]
#contents
2014/02/11からのアクセス回数 &counter;
** LPC810 [#j2f668a7]
トラ技2014年2月号、3月号には、8ピンのDIPマイコンLPC810とA...
この機会にmbedライクなクラスライブラリlbedをLPC810に移植...
- DigitalIn
- DigitalOut
- Wait API
- I2C
*** 開発環境のインストール [#y5d3dc0e]
NXPの開発環境LPCXpressoのインストール方法は、nxpfanさんの
[[「LPC810 (= DIP8_ARMマイコン) + LPCXpresso」で,Lチカ (...
を参考にしてください。
lbedライブラリを使うには、以下のライブラリをインポートし...
- ライブラリ:lpcxpresso/Examples/NXP/LPC800/LPC8xx_Libra...
インポートしたら、最初にlpc800_driver_libをビルドしてくだ...
** lbedのインストール [#jb945b4b]
以下のZIPファイルをダウンロードし、解凍したフォルダーをLP...
- &ref(LBED_LPC810.zip);
*** LBED_LPC810のインポート [#s8ad1dd9]
ファイルメニューからimport…→General→Existing Projects int...
先ほどコピーしたLBED_LPC810を選択します。
LBED_LPC810がProjectに現れたら完了です。
** サンプルプログラムの実行 [#n3883b18]
サンプルプログラムとして、src/examplesに以下の3つが入って...
- Blink.cpp: LEDを1秒間隔で点滅するプログラム
- ButtonSwitch.cpp: タクトスイッチを押すとLEDが点灯するプ...
- I2cLCD: 秋月のI2C LCD (AQCM0802)を使った表示プログラム
&ref(examples.png);
** LEDチカチカ [#rc6528a3]
最初にLEDを1秒間隔で点滅するBlinkを動かしてみます。
LBEDで使用できるピン番号は、P1-P5, P8の6本です。
&ref(LBED_pin.png);
ブレッドボードの配線は、以下の様にします。トラ技3月号のAR...
右につめて差します。
&ref(Blink_bread.png);
以下は、ARM Debuggerの代わりにLPC-Link2を付けているところ...
&ref(Blink_setting.png);
*** Blinkの実行 [#j9c1f238]
Blink.cppは、以下の様なプログラムです。
lbed.hをインクルードして、lbed_setupを呼ぶところがmbedと...
他は同じようにプログラムできます。
#pre{{
/*
Blink
1秒間LEDを点灯し、1秒間消灯を繰り返す
*/
#ifdef __USE_CMSIS
#include "LPC8xx.h"
#endif
#include <cr_section_macros.h>
#include "lbed.h"
int main(void) {
// lbedライブラリの初期化
lbed_setup();
// 8番ピンにLEDを接続
DigitalOut led(P8);
while(1) {
led = !led; // LEDを反転する
wait_ms(1000); // 1秒待つ
}
return 0 ;
}
}}
Quickstart PanelからDebugをクリックするとコンパイルとLPC8...
デバッガが起動して、main関数で止まります。
デバッグアイコンからResumeアイコン(右向きの緑の三角)を...
&ref(debug_icons.png);
LEDが1秒間隔で点滅すれば成功です。
*** ボタンで点灯 [#ga739826]
次に、タクトスイッチを押したときにLEDが点灯する例題Button...
以下の様にBlinkにタクトスイッチを追加します。
&ref(ButtonSwitch_bread.png);
実際の配線は、以下の様にしました。
&ref(ButtonSwitch_setting.png);
プログラムは、Blink.cppをexamplesに戻し、代わりにButtonSw...
デバッガがmainで止まったらresumeボタンを押します。
タクトボタンを押すとLEDが点灯することを試してみて下さい。
ButtonSwitch.cppのソース
#pre{{
/*
ButtonSwitch
スイッチを押すとLEDを点灯する
*/
#ifdef __USE_CMSIS
#include "LPC8xx.h"
#endif
#include <cr_section_macros.h>
#include "lbed.h"
int main(void) {
// lbedライブラリの初期化
lbed_setup();
// 8番ピンにLEDを接続
DigitalOut led(P8);
// 5番ピンにSWを接続
DigitalIn sw(P5);
while(1) {
led = !sw; // SWは、アクティブローなの...
wait_ms(200); // 0.2秒待つ
}
return 0 ;
}
}}
*** I2C LCDにつなぐ [#rb69330b]
最後に秋月から販売されているI2C接続のLCD(AQCM0802)を使...
配線は、以下の通りです。
- LPCの8番をAQCM0802の4番SDAに接続
- LPCの2番をAQCM0802の3番SCLに接続
AQCM0802の結線は、
- 1番, 2番をVCCに接続
- 5番をGNDに接続
また、LEDをP5に変更します。
&ref(I2cLCD_setting.png);
プログラムは、ButtonSwitch.cppをexamplesに戻し、代わりにI...
デバッガがmainで止まったらresumeボタンを押します。
原因は不明ですが、デバッグをするとI2Cのプログラムが途中で...
I2cLCD.cppは、以下のとおりです。
#pre{{
/*
I2cLCD
秋月AQCM0802を使ったI2cLCDの例題
*/
#ifdef __USE_CMSIS
#include "LPC8xx.h"
#endif
#include <cr_section_macros.h>
#include "lbed.h"
#include "AQCM0802.h"
int main(void) {
// lbedライブラリの初期化
lbed_setup();
/* I2C用スイッチマトリックスの設定 */
I2C_SwitchMatrix_Init();
// 5番ピンにLEDを接続
DigitalOut led(P5);
// 8番ピンSDA, 2番ピンSCL
AQCM0802 lcd(P8, P2);
// カウンター
int counter = 0;
lcd.print("Hello");
while(1) {
led = !led;
lcd.locate(0, 1);
lcd.print("cnt=");
lcd.print(counter++);
wait_ms(1000);
}
return 0 ;
}
}}
** おわりに [#yfaf83b1]
こんな感じで、mbedと同じように使えますので、LPC810版のmbe...
** コメント [#g802089b]
#vote(おもしろかった[12],そうでもない[0],わかりずらい[0])
皆様のご意見、ご希望をお待ちしております。
#comment_kcaptcha
終了行:
[[lbed]]
#contents
2014/02/11からのアクセス回数 &counter;
** LPC810 [#j2f668a7]
トラ技2014年2月号、3月号には、8ピンのDIPマイコンLPC810とA...
この機会にmbedライクなクラスライブラリlbedをLPC810に移植...
- DigitalIn
- DigitalOut
- Wait API
- I2C
*** 開発環境のインストール [#y5d3dc0e]
NXPの開発環境LPCXpressoのインストール方法は、nxpfanさんの
[[「LPC810 (= DIP8_ARMマイコン) + LPCXpresso」で,Lチカ (...
を参考にしてください。
lbedライブラリを使うには、以下のライブラリをインポートし...
- ライブラリ:lpcxpresso/Examples/NXP/LPC800/LPC8xx_Libra...
インポートしたら、最初にlpc800_driver_libをビルドしてくだ...
** lbedのインストール [#jb945b4b]
以下のZIPファイルをダウンロードし、解凍したフォルダーをLP...
- &ref(LBED_LPC810.zip);
*** LBED_LPC810のインポート [#s8ad1dd9]
ファイルメニューからimport…→General→Existing Projects int...
先ほどコピーしたLBED_LPC810を選択します。
LBED_LPC810がProjectに現れたら完了です。
** サンプルプログラムの実行 [#n3883b18]
サンプルプログラムとして、src/examplesに以下の3つが入って...
- Blink.cpp: LEDを1秒間隔で点滅するプログラム
- ButtonSwitch.cpp: タクトスイッチを押すとLEDが点灯するプ...
- I2cLCD: 秋月のI2C LCD (AQCM0802)を使った表示プログラム
&ref(examples.png);
** LEDチカチカ [#rc6528a3]
最初にLEDを1秒間隔で点滅するBlinkを動かしてみます。
LBEDで使用できるピン番号は、P1-P5, P8の6本です。
&ref(LBED_pin.png);
ブレッドボードの配線は、以下の様にします。トラ技3月号のAR...
右につめて差します。
&ref(Blink_bread.png);
以下は、ARM Debuggerの代わりにLPC-Link2を付けているところ...
&ref(Blink_setting.png);
*** Blinkの実行 [#j9c1f238]
Blink.cppは、以下の様なプログラムです。
lbed.hをインクルードして、lbed_setupを呼ぶところがmbedと...
他は同じようにプログラムできます。
#pre{{
/*
Blink
1秒間LEDを点灯し、1秒間消灯を繰り返す
*/
#ifdef __USE_CMSIS
#include "LPC8xx.h"
#endif
#include <cr_section_macros.h>
#include "lbed.h"
int main(void) {
// lbedライブラリの初期化
lbed_setup();
// 8番ピンにLEDを接続
DigitalOut led(P8);
while(1) {
led = !led; // LEDを反転する
wait_ms(1000); // 1秒待つ
}
return 0 ;
}
}}
Quickstart PanelからDebugをクリックするとコンパイルとLPC8...
デバッガが起動して、main関数で止まります。
デバッグアイコンからResumeアイコン(右向きの緑の三角)を...
&ref(debug_icons.png);
LEDが1秒間隔で点滅すれば成功です。
*** ボタンで点灯 [#ga739826]
次に、タクトスイッチを押したときにLEDが点灯する例題Button...
以下の様にBlinkにタクトスイッチを追加します。
&ref(ButtonSwitch_bread.png);
実際の配線は、以下の様にしました。
&ref(ButtonSwitch_setting.png);
プログラムは、Blink.cppをexamplesに戻し、代わりにButtonSw...
デバッガがmainで止まったらresumeボタンを押します。
タクトボタンを押すとLEDが点灯することを試してみて下さい。
ButtonSwitch.cppのソース
#pre{{
/*
ButtonSwitch
スイッチを押すとLEDを点灯する
*/
#ifdef __USE_CMSIS
#include "LPC8xx.h"
#endif
#include <cr_section_macros.h>
#include "lbed.h"
int main(void) {
// lbedライブラリの初期化
lbed_setup();
// 8番ピンにLEDを接続
DigitalOut led(P8);
// 5番ピンにSWを接続
DigitalIn sw(P5);
while(1) {
led = !sw; // SWは、アクティブローなの...
wait_ms(200); // 0.2秒待つ
}
return 0 ;
}
}}
*** I2C LCDにつなぐ [#rb69330b]
最後に秋月から販売されているI2C接続のLCD(AQCM0802)を使...
配線は、以下の通りです。
- LPCの8番をAQCM0802の4番SDAに接続
- LPCの2番をAQCM0802の3番SCLに接続
AQCM0802の結線は、
- 1番, 2番をVCCに接続
- 5番をGNDに接続
また、LEDをP5に変更します。
&ref(I2cLCD_setting.png);
プログラムは、ButtonSwitch.cppをexamplesに戻し、代わりにI...
デバッガがmainで止まったらresumeボタンを押します。
原因は不明ですが、デバッグをするとI2Cのプログラムが途中で...
I2cLCD.cppは、以下のとおりです。
#pre{{
/*
I2cLCD
秋月AQCM0802を使ったI2cLCDの例題
*/
#ifdef __USE_CMSIS
#include "LPC8xx.h"
#endif
#include <cr_section_macros.h>
#include "lbed.h"
#include "AQCM0802.h"
int main(void) {
// lbedライブラリの初期化
lbed_setup();
/* I2C用スイッチマトリックスの設定 */
I2C_SwitchMatrix_Init();
// 5番ピンにLEDを接続
DigitalOut led(P5);
// 8番ピンSDA, 2番ピンSCL
AQCM0802 lcd(P8, P2);
// カウンター
int counter = 0;
lcd.print("Hello");
while(1) {
led = !led;
lcd.locate(0, 1);
lcd.print("cnt=");
lcd.print(counter++);
wait_ms(1000);
}
return 0 ;
}
}}
** おわりに [#yfaf83b1]
こんな感じで、mbedと同じように使えますので、LPC810版のmbe...
** コメント [#g802089b]
#vote(おもしろかった[12],そうでもない[0],わかりずらい[0])
皆様のご意見、ご希望をお待ちしております。
#comment_kcaptcha
ページ名:
SmartDoc