UTL-025を使うに際して参考プログラムはありませんか
UTL-025はEPSON製S1D13781を搭載しており、当社内でもEPSON社のサンプルプログラム
を編集して検査プログラムを作成しております。
ほとんどサンプルプログラムのまま動作するかと存じますが、初期設定について下記のよ
うに変更しております。EPSON社のFUNC_LCDC_REF.cppを元にしています。
#define LCD_PLL_MDIV 0x000B // 24MHz * 1/12 = 2MHz
#define LCD_PLL_LCNTR 0x0020 // 2MHz * 33 = 66MHz(MCLK)
#define LCD_PLL_PCLKDIV 0x0002 // 66MHz / 8 = 8.25MHz(PCLK)
#define LCD_PANEL_TYPE LCDC_PANEL_TFT24
#define LCD_PANEL_PCLK_POL LCDC_PANEL_PCLK_POSEDGE
#define LCD_PANEL_DE_POL LCDC_PANEL_DE_HIGH_ACT
#define LCD_PANEL_HDISP 800//480
#define LCD_PANEL_HNDP 120//45
#define LCD_PANEL_VDISP 480//272
#define LCD_PANEL_VNDP 44//16
#define LCD_PANEL_HSW 20//20
#define LCD_PANEL_HPS 20//20
#define LCD_PANEL_VSW 4
#define LCD_PANEL_VPS 7//4
//---中略----
static uint8 palet[LUT_SIZE]; // LUT
/* ==================================================================== */
void lcd_test25( void ) // UTL-025 TEST
/* ==================================================================== */
{
int i,j;
static uint8 tblu[] = {
0, 0x11, 0x22, 0x44, 0x88, 0x99, 0xaa, 0xbb,
0, 0x11, 0x22, 0x44, 0x88, 0x99, 0xaa, 0xbb,
};
static uint8 tbll[] = {
0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7,
0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7,
};
uint32 k;
lcd_bl_cont( 1 ); // UTL-025 back light on/off
FT_printf( "lcd_test24() UTL-025 TEST" CRLF );
DumpReg_lcdc();
Init_lcdc25();
FT_printf( "---Init_lcdc(LCDC_BPP);" CRLF );
DumpReg_lcdc();
set_pal( 0xc0, 0x00, 0xff, 0xff); // パレット設定 dt, b, g, r
set_pal( 0xc1, 0x00, 0xff, 0x00); // パレット設定 dt, b, g, r
set_pal( 0xc2, 0xff, 0x00, 0x00); // パレット設定 dt, b, g, r
set_pal( 0xc3, 0xff, 0x00, 0xff); // パレット設定 dt, b, g, r
set_pal( 0xc4, 0xff, 0x44, 0x44); // パレット設定 dt, b, g, r
set_pal( 0xc5, 0x55, 0x55, 0x00); // パレット設定 dt, b, g, r
set_pal( 0xc6, 0x55, 0xff, 0x00); // パレット設定 dt, b, g, r
set_pal( 0xc7, 0x00, 0x00, 0xff); // パレット設定 dt, b, g, r
DumpReg_lcdc();
//上半分
for( j=0; j < 16 ; j++){
for( i=0; i < LCD_PANEL_VDISP/2; i++){
Fill_byte_lcdc_25( xy2adrs( j*(800/16), i ), (LCD_PANEL_HDISP/16), tblu[j] );
}
}
//下半分
for( j=0; j < 16 ; j++){
for( i=LCD_PANEL_VDISP/2; i < LCD_PANEL_VDISP; i++){
Fill_byte_lcdc_25( xy2adrs( j*(800/16), i ), (LCD_PANEL_HDISP/16), tbll[j] );
}
}
k=0xFF;
Fill_lcdc25( 0, 0, LCD_PANEL_HDISP-1, 0, k);
Fill_lcdc25( 0, 0, 0, LCD_PANEL_VDISP-1, k);
Fill_lcdc25( LCD_PANEL_HDISP-1, 0, LCD_PANEL_HDISP-1, LCD_PANEL_VDISP-1, k);
Fill_lcdc25( 0, LCD_PANEL_VDISP-1, LCD_PANEL_HDISP-1, LCD_PANEL_VDISP-1, k);
FT_printf( "---test end" CRLF );
}
また参考のため、コントローラ周辺回路をご覧下さい。
当社ではサンプルソースのすべてをお示しすることはいたしておりません。 この記事が皆様の参考になれば幸いです。
[kw] 2015-11-25 UTL-025 S1D13781
[]

