lbed

2013/07/15からのアクセス回数 3111

LCDをつなぐ

MyARMが3.3Vなので、StarBoardOrangeの3.3V対応にしたLCDを使うことにしました。 そのままさせるといいのですが、ちょっと大きくてささりません。

LCD_setting.png

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にします。

optimize.jpg

コメント

選択肢 投票
おもしろかった 0  
そうでもない 0  
わかりずらい 0  

皆様のご意見、ご希望をお待ちしております。


(Input image string)

*1 printfは、サイズが大きくなるので選択としました

トップ   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
SmartDoc