' ' ********************************************* ' * 3.12インチ 256x64 OLED テストプログラム * ' * [SSD1322] 3線 or 4線 SPI * ' * O-Family 2024. 6.17 * ' ********************************************* ' $regfile = "m328pdef.dat" '使用するAVRを設定。(ATmega328P) $crystal = 8000000 'AVRクロックを設定。 $hwstack = 64 'ハードウェア・スタックの容量を設定。 $swstack = 10 'ソフトウェア・スタックの容量を設定。 $framesize = 24 'フレーム領域の容量を設定。 ' ' * OLEDの初期設定 * ' Const Rotate_180 = 0 'OLEDの画面設置方向(180度回転)。(0:コネクターが右側 , 1:コネクターが左側) Const Spi_wire_selection = 4 'SPI接続の線数の選択。(3 = 3線式 描画速度:低) , 4 = 4線式 描画速度:高) ' $lib "glcdSSD1322-SPI.lib" 'SSD1322 3.12インチ 256x64 SPIライブラリを組み込む。 ' OLEDの接続ポートを指定する。 Cs1 = [/CS] , Rst = [/RES] , A0 = [D/C] , Si = [SDIN] , Sclk = [SCLK] Config Graphlcd = Color , Cs1 = Portc.0 , Rst = Portc.1 , A0 = Portc.2 , Si = Portc.3 , Sclk = Portc.4 '[Cs1]と[Rst]はオプション。 ' 文字列の描画命令 : [Lcdat Y , X , Character , FG , BG] ' Y = Y(行)アドレス (0〜63) , X = X(列)アドレス (0〜255) , Character = 表示する文字列または変数。 ' FG = 前景のグレースケール値 (0〜15) , BG = 背景のグレースケール値 (0〜15) : (0:暗い〜15:明るい) ' 注: SSD1322は4ビットのグレースケールのデータをワード単位で書き込むため、Xアドレスは4ドット間隔で設定してください。(例: 0,4,8 〜 248,252) ' RLE圧縮形式のBGC画像データを描画する命令 : [Showpic X , Y , label] ' X = X(列)アドレス (0〜255) , Y = Y(行)アドレス (0〜63) , label = 表示する画像データのラベル。 SHOWPIC命令のヘルプを参照してください。 ' BMP画像からRLE圧縮形式のBGC画像データを作成するために、LCD RGB-8 converter [LCDconvert.exe]を使用します。 ' 以下は、8bitのBGCフォーマットのRGB8コード(RRRG_GGBB)から、グレースケールの4ビット輝度値(0〜15)に対応させるテーブルです。 Const _bgc_r2 = &B0000_1000 'BGC RGB8コード [Red2] Const _bgc_r1 = &B0000_0000 'BGC RGB8コード [Red1] Const _bgc_r0 = &B0000_0000 'BGC RGB8コード [Red0] Const _bgc_g2 = &B0000_0100 'BGC RGB8コード [Green2] Const _bgc_g1 = &B0000_0000 'BGC RGB8コード [Green1] Const _bgc_g0 = &B0000_0000 'BGC RGB8コード [Green0] Const _bgc_b1 = &B0000_0010 'BGC RGB8コード [Blue1] Const _bgc_b0 = &B0000_0000 'BGC RGB8コード [Blue0] ' 初期値では、色R,G,Bそれぞれの中間輝度値がグレースケールの輝度値の下位4ビット(0〜15)になっています。 ' オリジナル画像の配色に合わせてグレースケールを調整してください。 ' ' **************** ' * 描画のテスト * ' **************** ' Do Setfont Color8x8 Lcdat 0 , 0 , "SSD1322 SPI 3.12in OLED 256x64" , 15 , 0 ' Setfont Color16x16 Lcdat 10 , 4 , "ABC" , 13 , 4 Lcdat 10 , 56 , "0123" , 4 , 10 ' Setfont Color_offont8x8 Lcdat 30 , 0 , "ORIGINAL Font 8x8" , 15 , 4 ' Setfont Color_offont16x16 Lcdat 44 , 0 , "16x16" , 0 , 15 ' Setfont Color_offont40x32 Lcdat 18 , 140 , "40" , 4 , 12 ' Showpic 212 , 10 , Plaatje 'BGCファイルを描画する。 Wait 3 Glcdcmd &HC1 : Glcddata 64 'コントラストの設定。(0〜255) Wait 3 Glcdcmd &HAE 'スリープモードON。(表示OFF) Wait 2 Glcdcmd &HAF 'スリープモードOFF。(表示ON) Wait 3 Glcdcmd &HC1 : Glcddata 128 'コントラストの設定。(0〜255) Glcdcmd &HA7 '反転表示。 Wait 3 Glcdcmd &HA6 '通常表示。 Wait 3 Cls '画面を全消去する。 Glcdcmd &HC1 : Glcddata 255 'コントラストの設定。(0〜255) Wait 2 Loop End '-------------------------------------------------------------------------------------------------- ' ' * フォント データ * ' $include "color8x8.font" $include "Color16x16.font" $include "Color_OFfont8x8.font" $include "Color_OFfont16x16.font" $include "Color_OFfont40x32.font" ' ' * 画像データ * ' Plaatje: $bgf "FL001-2.BGC" 'BGCファイルを組み込む。(カーネーション)