lbed

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

LCDをつなぐ

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

LCD_setting.png

StarBoardOrangeとMyARMとの接続は、以下の様にします。

  • p40 3.3V:p40
  • p30 DB7:p30
  • p29 DB6:p29
  • p28 DB5:p28
  • p27 DB4:p27
  • p26 E:p26
  • p24 RS:p24
  • p1 GND:p1 GND

テストプログラム

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は、サイズが大きくなるので選択としました

添付ファイル: fileLCD_setting.png 290件 [詳細] fileoptimize.jpg 302件 [詳細]

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2013-07-15 (月) 14:42:05 (1612d)
SmartDoc