Snow in Novemberのブログ(blog)

C言語でPIC18F、SDカードの画像ファイルをLCD(M028C9325TP)に表示

calendar

aitendoで入手したカラーグラフィックLCD(M028C9325TP (320 x 240ピクセル)には、SDカードのソケットも実装されています。 ここに画像ファイル(BMP)を入れてLCDへの表示をしました。

PIC18F26K22を使用してXC8のCコンパイラ用のプログラムでLCD(M028C9325TP)への表示とSDカードの読み出しとは先日個別にできているので、合体することでSDカード内の画像ファイルを読み出してLCDに表示しました。
PIC18F26K22 XC8 で SDカード内の画像ファイルを LCD(M028C9325TP) に表示
SD関連の結線は前回のそのままですが、LCD関連の結線はRCxからRBxに変更しました。

PICとSDカードの接続
PIC                SDカード(変更なし)
————————————–
RC0               SD_CS   (10kΩの抵抗器でプルアップ)
RC3/SCK1    SD_SCK
RC4/SDI1     SD_OUT (10kΩの抵抗器でプルアップ)
RC5/SDO1    SD_DIN

PICとLCDの接続(RCx→RBxに変更)
PIC        LCD
————————-
RA0               DB8
RA1               DB9
・                ・
・                ・
RA7               DB15
RC0  RB3      RS
RC1  RB2      WR
RC2  RB1      RD
RC6  RB4      CS
RC7  RB5      RST

元々ベースにしたC言語のコードは先日の日記にも記載しているように、
LCD関連: aitendo のサイトのこのLCDのページにあるC言語の参考コード(但しSTM32用)
SD関連:こちらのサイト(Interfacing SD Card With PIC Microcontroller-XC8)
です。 これらに変更を加えた形になっています。

プログラムはSDカード読み書きのものをベースにして、LCD関係のコード(ILI93xx.c (修正したもの), lcd.h(修正したもの), font.h)を組み込み、つじつまをあわせる感じで行いました。)

その上でILI93xx.cにBMPファイルをLCDに表示するために変更しました。
主な変更点は、画像表示RAM(GRAM) アドレス制御の変更 (ILI9325のAMビット=0→1, I/Dビット=11→00)。 (これによってLCD_WR_DATA()を連続で読み出している関数のLCD_Fill()とLCD_Clear()は副作用を受ける。)です。
LCD_Init()関数
LCD_WriteReg(0x0003,(1<<12)|(3<<4)|(0<<3) );//65K
→  LCD_WriteReg(0x0003,(1<<12)|(0b00<<4)|(1<<3) );//65K

LCD_Clear()関数
LCD_SetCursor(0x00,0x0000);//
→      LCD_SetCursor(0x00,LCD_H – 1);

LCD_Fill()関数
#ifdef USE_HORIZONTAL
→      #ifndef USE_HORIZONTAL

さらに、BMPファイルの画像データをLCD_WR_DATA()関数を使用してLCDの画像表示RAM(GRAM)に転送する関数を追加。 main()でf_read()に続いてこれを呼び出します。
上記の変更でBMPファイルデータ順(画像左下始まり、水平方向にスキャン、右上終わり)とLCD_WR_DATA()関数を連続使用したときの画像表示データRAM(GRAM)のアドレス変化の方向が同一になっています(LCD_WR_DATA()で連続転送できる)。 RGBのビット位置合せは必要ですけど。

PIC18FでのC言語の扱いと、カラーグラフィック液晶をどのような感じで使うのかが大体わかった気がします。 このLCDモジュール(M028C9325TP)はタッチスクリーンもついているのですが、試してみるかどうかまだ迷っています。


関連記事
C言語でPIC18F、まずはLチカ (LED点滅
C言語でPIC18F、カラーグラフィックLCD(M028C9325TP) 接続
C言語でPIC18F、カラーグラフィックLCD(M028C9325TP) 接続2
C言語でPIC18F、SDカード読み書き
C言語でPIC18F、SDカードの画像ファイルをLCD(M028C9325TP)に表示

[商品価格に関しましては、リンクが作成された時点と現時点で情報が変更されている場合がございます。]

ZEROPLUS ロジックアナライザ 【LAP-C(16032)】
価格:14160円(税込、送料別) (2017/3/12時点)

この記事をシェアする

コメント

コメントはありません。

down コメントを残す




3 × five =

folder お助けグッズ

No Image

ネコポス測定定規をゲットしました
more...

folder カード

SBIカードから重要なお知らせの郵便が届きました。サービス終了!
more...

folder その他

消火器の有効使用期間が切れていました
more...

folder ダイエット

No Image

No Image

No Image

No Image

No Image

more...

folder 家電品

RAVPOWER RP-UC11 USB充電器 2ポート(2個口)2.4A 買いました
語学学習用にオリンパスのICレコーダー Voice Trek V-863を買いました
more...

folder 旅行

RAVPOWER RP-UC11 USB充電器 2ポート(2個口)2.4A 買いました
RAVPOWER RP-PB060 モバイルバッテリー 買いました
電車とバスを乗り継いで黒部ダム(黒四ダム)を見てきました
遊覧船とロープウェイから浜名湖を眺めてきました。
JAXA 筑波宇宙センターの施設見学をして来ました
more...

folder 書籍(本)

走り方がわかる本。ランニングの科学 買いました
究極の個人旅行ガイド本 バックパッカーズ読本 最新版 買いました。
more...

folder 衣服

ヘインズ Hanes Tシャツ 靑ラベル まとめ買いしました
more...

folder 防災グッズ

超大型台風(21号)をきっかけに最近の防災グッズを調べてみました
more...