' ' ************************************************* ' * 2.8インチ 65KフルカラーLCD テストプログラム * ' * 横320 x 縦240 ドット [ILI9341] SPI * ' * O-Family 2019. 5.23 * ' ************************************************* ' '$regfile = "m88pdef.dat" '使用するAVRを設定。(ATmega88P) $regfile = "m328pdef.dat" '使用するAVRを設定。(ATmega328P) $crystal = 8000000 'AVRクロックを設定。 $hwstack = 64 'ハードウェア・スタックの容量を設定。 $swstack = 10 'ソフトウェア・スタックの容量を設定。 $framesize = 24 'フレーム領域の容量を設定。 ' ' * G-LCDの初期設定 * ' Const Portrait = 1 'LCDの画面設置方向(90度回転)。 (0:横置き[X=320,Y=240] , 1:縦置き[X=240,Y=320]) Const Rotate_180 = 0 'LCDの画面設置方向(180度回転)。(0:コネクターが上側 , 1:コネクターが下側) Dim Offset256 As Byte 'LCDアドレスのオフセットフラグ。(0:0-255 , 1:256-319) $lib "glcd-ILI9341_2R8_240x320.lib" 'ILI9341の2.8インチ240x320版ライブラリを組み込む。 ' LCDの接続ポートを指定する。 Cs1 = [CS] , Rst = [RESET] , A0 = [DC] , Si = [SDI] , Sclk = [SCK] Config Graphlcd = Color , Cs1 = Portd.3 , Rst = Portd.4 , A0 = Portd.5 , Si = Portd.6 , Sclk = Portd.7 '[Cs1]と[Rst]はオプション。 Initlcd 'ILI9341を初期化する。 Cls 'G-LCDの全画面を消去する。 ' ' * 色の名前を定義する * [RRRG_GGBB] = [R2,R1,R0,G2_G1,G0,B1,B0] ' Const Black = &B0000_0000 Const Red = &B1110_0000 Const Green = &B0001_1100 Const Blue = &B0000_0011 Const Magenta = &B1110_0011 Const Yellow = &B1111_1100 Const Cyan = &B0001_1111 Const White = &B1111_1111 ' Const Orange = &B1111_0100 Const Brightgreen = &B0011_1110 Const Brightblue = &B0001_1111 Const Darkred = &B1100_0000 Const Darkgreen = &B0001_0100 Const Darkblue = &B0000_0010 ' ' **************** ' * 描画のテスト * ' **************** ' Dim Temp1 As Byte Setfont Color8x8 #if Portrait = 0 '横置き[X=320,Y=240] ' Offset256 = 0 'LCDアドレスのオフセット値。(0: 0-255) Box(0 , 0) -(255 , 239) , White '表示エリアの枠。 Lcdat 12 , 90 , "Offset256 = 0" , Cyan , Black For Temp1 = 0 To 232 Step 8 'アドレス値の表示。 Lcdat Temp1 , 5 , "(" ; Temp1 ; ",5)" , Green , Black Next Temp1 ' Offset256 = 1 'LCDアドレスのオフセット値。(1: 256-319) Box(256 , 0 ) -(319 , 239 ) , Red '表示エリアの枠。 Lcdat 48 , 260 , "Offset" , Cyan , Black Lcdat 56 , 260 , "256 = 1" , Cyan , Black Lcdat 0 , 260 , "(0,260)" , Green , Black 'アドレス値の表示。 Lcdat 8 , 260 , "(8,260)" , Green , Black Lcdat 16 , 256 , "(16,256)" , Green , Black Lcdat 24 , 256 , "(24,256)" , Green , Black ' Offset256 = 0 'LCDアドレスのオフセット値。(0: 0-255) Lcdat 41 , 90 , "Red" , Red , Black '文字色のテスト。 Lcdat 49 , 90 , "Green" , Green , Black Lcdat 57 , 90 , "Blue" , Blue , Black Lcdat 65 , 90 , "Magenta" , Magenta , Black Lcdat 73 , 90 , "Yellow" , Yellow , Black Lcdat 81 , 90 , "Cyan" , Cyan , Black Lcdat 89 , 90 , "Orange" , Orange , Black Lcdat 97 , 90 , "White" , White , Black Lcdat 107 , 90 , "Black" , Black , White ' Lcdat 117 , 90 , "Darkred" , Darkred , Black Lcdat 125 , 90 , "Darkgreen" , Darkgreen , Black Lcdat 133 , 90 , "Darkblue" , Darkblue , Black Lcdat 141 , 90 , "Brightgreen" , Brightgreen , Black ' Boxfill(200 , 190) -(240 , 230) , Red 'BOX命令のテスト。 Boxfill(215 , 205) -(225 , 215) , Green Box(206 , 196) -(234 , 224) , Cyan ' Circle(220 , 152) , 18 , Magenta 'CIRCLE命令のテスト。 Circle(220 , 152) , 10 , Yellow Line(194 , 152) -(246 , 152) , White Pset 220 , 152 , Black ' For Temp1 = 1 To 91 Step 5 'LINE命令のテスト。 Line(176 , 91) -(255 , Temp1) , Blue Next Temp1 ' Offset256 = 1 'LCDアドレスのオフセット値。(1: 256-319) Boxfill(266 , 190) -(306 , 230) , Red 'BOX命令のテスト。 Boxfill(281 , 205) -(291 , 215) , Green Box(272 , 196) -(300 , 224) , Cyan ' Circle(286 , 152) , 18 , Magenta 'CIRCLE命令のテスト。 Circle(286 , 152) , 10 , Yellow Line(260 , 152) -(312 , 152) , White Pset 286 , 152 , Black ' ' Wait 3 ' Cls '[Showpic]命令のテスト。 ' Offset256 = 1 'LCDアドレスのオフセット値。(1: 256-319) ' Box(256 , 0 ) -(319 , 239 ) , Green '表示エリアの枠。 ' Offset256 = 0 'LCDアドレスのオフセット値。(0: 0-255) ' Showpic 0 , 0 , 5011_255_240 ' ' #else '縦置き[X=240,Y=320] ' Offset256 = 0 'LCDアドレスのオフセット値。(0: 0-255) Box(0 , 0) -(239 , 255) , White '表示エリアの枠。 Lcdat 4 , 90 , "Offset256 = 0" , Cyan , Black For Temp1 = 0 To 255 Step 8 'アドレス値の表示。 Lcdat Temp1 , 5 , "(" ; Temp1 ; ",5)" , Green , Black Next Temp1 ' Offset256 = 1 'LCDアドレスのオフセット値。(1: 256-319) Box(0 , 256) -(239 , 319) , Red '表示エリアの枠。 Lcdat 4 , 90 , "Offset256 = 1" , Cyan , Black Lcdat 256 , 13 , "(256,13)" , Green , Black 'アドレス値の表示。 Lcdat 264 , 13 , "(264,13)" , Green , Black Lcdat 272 , 13 , "(272,13)" , Green , Black Lcdat 280 , 13 , "(280,13)" , Green , Black Lcdat 288 , 13 , "(288,13)" , Green , Black Lcdat 296 , 13 , "(296,13)" , Green , Black Lcdat 304 , 13 , "(304,13)" , Green , Black Lcdat 312 , 13 , "(312,13)" , Green , Black ' Offset256 = 0 'LCDアドレスのオフセット値。(0: 0-255) Lcdat 25 , 90 , "Red" , Red , Black '文字色のテスト。 Lcdat 33 , 90 , "Green" , Green , Black Lcdat 41 , 90 , "Blue" , Blue , Black Lcdat 49 , 90 , "Magenta" , Magenta , Black Lcdat 57 , 90 , "Yellow" , Yellow , Black Lcdat 65 , 90 , "Cyan" , Cyan , Black Lcdat 73 , 90 , "Orange" , Orange , Black Lcdat 83 , 90 , "White" , White , Black Lcdat 91 , 90 , "Black" , Black , White ' Lcdat 101 , 90 , "Darkred" , Darkred , Black Lcdat 109 , 90 , "Darkgreen" , Darkgreen , Black Lcdat 117 , 90 , "Darkblue" , Darkblue , Black Lcdat 125 , 90 , "Brightgreen" , Brightgreen , Black ' Boxfill(190 , 170) -(230 , 210) , Red 'BOX命令のテスト。 Boxfill(205 , 185) -(215 , 195) , Green Box(196 , 176) -(224 , 204) , Cyan ' Circle(138 , 192) , 18 , Magenta 'CIRCLE命令のテスト。 Circle(138 , 192) , 10 , Yellow Line(112 , 192) -(164 , 192) , White Pset 138 , 192 , Black ' For Temp1 = 1 To 91 Step 5 'LINE命令のテスト。 Line(160 , 91) -(239 , Temp1) , Blue Next Temp1 ' Offset256 = 1 'LCDアドレスのオフセット値。(1: 256-319) Boxfill(190 , 270) -(230 , 310) , Red 'BOX命令のテスト。 Boxfill(205 , 285) -(215 , 295) , Green Box(196 , 276) -(224 , 304) , Cyan ' Circle(138 , 292) , 18 , Magenta 'CIRCLE命令のテスト。 Circle(138 , 292) , 10 , Yellow Line(112 , 292) -(164 , 292) , White Pset 138 , 292 , Black ' #endif ' End '-------------------------------------------------------------------------------------------------- ' ' * フォント データ * ' $include "color8x8.font" ' ' * BGC画像データ * ' '5011_255_240: '$bgf "5011_255_240.BGC"