Mini210S 開発キットOSなしのプログラム開発手順連載(29)

Mini210S/Tiny210等開発ボード関連のフォラーム

Mini210S 開発キットOSなしのプログラム開発手順連載(29)

投稿記事by dwtechadm » 月 5 13, 2013 12:11 pm

Mini210S 開発キット詳細URL



第XXIII章 LCD文字や画像表示

第一節 LCD文字や画像表示
前の章ではLCDで点線を描画する方法を説明しました、本章は進展関数、文字や画像描画方法をご紹介します。関数lcd_draw_pixel()でポイントを拡張して、文字(キャラクター)を構成;画像も同じ原理で構成されます。

第二節 プログラム説明
完全なコードは、ディレクトリ23.lcd_pictureご参照ください。

1. main.c
手順は4つあります:
ステップ 1: シリアルポート初期化;
ステップ 2: 関数lcd_init()を呼び出し、LCD初期化;
ステップ 3: 関数lcd_draw_bmp()を呼び出し、LCD 上画像を描画します。{0>图片的数据保存在一个数组中、我们只需要把数组中的值一个个的读出来并写到 FrameBuffer 中即可<}0{>画像データがひと組の配列データに保存されます。ここで、データを読み出し、FrameBufferに書き込みます<0};
ステップ 4: 文字を描画、関数 printf()を呼び出して“FriendlyARM”をプリントアウトします。 printf()では putc()と lcd_draw_char()を呼び出しため、シリアルポートとLCD共にプリント情報を表示します。

2. lcd.c
関数 lcd_draw_char()は文字を描画します:
ステップ 1 フォント取得。受信のパラメータを標的で、マトリックスアレイfontdata8×16から対応するフォント行列を取り出します。配列fontdata8×16はfont8x16.c位置に定義されます。このファイルは、Linuxカーネルから引き出されます。
ステップ 2 改行の条件を確認します。゛\n゛を検索した時时改行します、゛\r゛を検索した時时キャリッジリターンラインします;
ステップ 3 8x16ピクセル内で一文字を描きます。font_8x16.c内に定義された文字は全部8x16bitピクセル内で構成されます、1bitは1ピクセル対応します。例えば当 bit値は1になると関数lcd_draw_pixel()を呼び出してブルーを描画し、0は描画しません;
ステップ 4 カーソルを8×16ピクセルの位置移動します;

関数 lcd_draw_bmp()は画像を描きます:
ステップ 1: 配列から、ピクセルの色の値を取得します;
ステップ 2: 関数lcd_draw_pixel()で配列の値をLCD上で描画し、最後に画像を構成されます;


第三節 コードコンパイルとプログラミングの実行

コードをコンパイルし、Fedora端末で下記のコマンドを実行します:
# cd 23.lcd_picture
# make
23.lcd_pictureのディレクトリ下にlcd.binを生成し、それを開発ボードにプログラムします。

第四節 実験現象

LCD 上に文字が表示します。
画像



-------完章
dwtechadm
 
記事: 60
登録日時: 月 2 25, 2013 1:35 pm

Return to Cortex-A8関連

オンラインデータ

このフォーラムを閲覧中のユーザー: なし & ゲスト[1人]

cron