[[lbed]] #contents 2013/07/15からのアクセス回数 &counter; ** LCDをつなぐ [#p3e5d20d] ** LCDをつなぐ [#lb335490] MyARMが3.3Vなので、StarBoardOrangeの3.3V対応にしたLCDを使うことにしました。 そのままさせるといいのですが、ちょっと大きくてささりません。 &ref(LCD_setting.png); StarBoardOrangeとMyARMとの接続は、以下の様にします。 - p40 3.3V:p40 - p30 DB7:p30 - p29 DB6:p29 - p28 DB5:p28 - p28 DB4:p27 - p28 E:p26 - p28 RS:p24 - p27 DB4:p27 - p26 E:p26 - p24 RS:p24 - p1 GND:p1 GND ** テストプログラム [#kd7af0d4] ** テストプログラム [#i121bbae] LCDを使用するには、TextLCDのインスタンスを生成し、それを使ってprint, locateの関数を呼びだすだけです。 TextLCDをPrintのサブクラスにしてあるので、Arduinoのようなprint関数が 使えます。((printfは、サイズが大きくなるので選択としました)) 以下の様なテストプログラムをTestLCD.cppとして作成してください。 #pre{{ #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); } } }} *** 上手く動かない [#ob9a5126] *** 上手く動かない [#qb126761] 動作確認をしたところ、上手く動きません。以前は動作していたのにどうしてか悩んだ結果、 オプティマイズをなしにしてライブラリとプログラムを作り直しました。 これで、なんとか動くようになったのですが、しっくりしない結果です。 オプティマイズの変更は、プロジェクトを選択し、右クリックからPropertiesを選択します。 ここで、C/C++ BuildのSettingsを選択し、MCP C++ CompilerのOptimizationを選択して、 Optimization LevelをNoneにします。 &ref(optimize.jpg); ** コメント [#id0c8eba] ** コメント [#z9f8c4a5] #vote(おもしろかった,そうでもない,わかりずらい) 皆様のご意見、ご希望をお待ちしております。 #comment_kcaptcha