2013/07/15からのアクセス回数 3423
MyARMが3.3Vなので、StarBoardOrangeの3.3V対応にしたLCDを使うことにしました。 そのままさせるといいのですが、ちょっと大きくてささりません。
StarBoardOrangeとMyARMとの接続は、以下の様にします。
LCDを使用するには、TextLCDのインスタンスを生成し、それを使ってprint, locateの関数を呼びだすだけです。
TextLCDをPrintのサブクラスにしてあるので、Arduinoのようなprint関数が 使えます。*1
以下の様なテストプログラムをTestLCD.cppとして作成してください。
#include<cr_section_macros.h>
#include<NXP/crp.h>
__CRP externconstunsignedint CRP_WORD = CRP_NO_CRP ;
#include"lbed.h"
#include"TextLCD.h"
int main(void) {
intcount = 0;
wait_init();
DigitalOut myled(LED1);
TextLCD lcd(p24, p26, p27, p28, p29, p30);
lcd.print("Hello World!");
while(1) {
lcd.locate(0, 1);
lcd.print("Count=");
lcd.print(count++);
myled = ! myled;
wait_ms(1000);
}
}
動作確認をしたところ、上手く動きません。以前は動作していたのにどうしてか悩んだ結果、 オプティマイズをなしにしてライブラリとプログラムを作り直しました。
これで、なんとか動くようになったのですが、しっくりしない結果です。
オプティマイズの変更は、プロジェクトを選択し、右クリックからPropertiesを選択します。 ここで、C/C++ BuildのSettingsを選択し、MCP C++ CompilerのOptimizationを選択して、 Optimization LevelをNoneにします。
皆様のご意見、ご希望をお待ちしております。