void Lcd_cpuisr_proc(void) { //if(lcd_onoff_status == 1) { LCD_CPU_WR(0,0x0200, 0x0000); //INT GRAM address LCD_CPU_WR(0,0x0201, 0x0000); //INT GRAM address LCD_CPU_WR_INDEX(0,0x0202); //__msg("LCD: Lcd_cpuisr_proc\n"); } }
static void kgm281i0_init(__u32 sel) { kgm281i0_rs(sel,1); LCD_delay_ms(50); kgm281i0_rs(sel,0); LCD_delay_ms(50); kgm281i0_rs(sel,1); LCD_CPU_WR(sel,0x0000, 0x0001); LCD_CPU_WR(sel,0x0001, 0x0100); LCD_CPU_WR(sel,0x0002, 0x0400); LCD_CPU_WR(sel,0x0003, 0x1018); LCD_CPU_WR(sel,0x0004, 0x0000); LCD_CPU_WR(sel,0x0008, 0x0202); LCD_CPU_WR(sel,0x0009, 0x0000); LCD_CPU_WR(sel,0x000A, 0x0000); LCD_CPU_WR(sel,0x000C, 0x0000); LCD_CPU_WR(sel,0x000D, 0x0000); LCD_CPU_WR(sel,0x000F, 0x0000); LCD_CPU_WR(sel,0x0010, 0x0000); LCD_CPU_WR(sel,0x0011, 0x0007); LCD_CPU_WR(sel,0x0012, 0x0000); LCD_CPU_WR(sel,0x0013, 0x0000); LCD_delay_ms(50); LCD_CPU_WR(sel,0x0010, 0x17B0); LCD_CPU_WR(sel,0x0011, 0x0001); LCD_delay_ms(50); LCD_CPU_WR(sel,0x0012, 0x013C); LCD_delay_ms(50); LCD_CPU_WR(sel,0x0013, 0x1300); LCD_CPU_WR(sel,0x0029, 0x0012); LCD_delay_ms(50); LCD_CPU_WR(sel,0x0020, 0x0000); LCD_CPU_WR(sel,0x0021, 0x0000); LCD_CPU_WR(sel,0x002B, 0x0020); LCD_CPU_WR(sel,0x0030, 0x0000); LCD_CPU_WR(sel,0x0031, 0x0306); LCD_CPU_WR(sel,0x0032, 0x0200); LCD_CPU_WR(sel,0x0035, 0x0107); LCD_CPU_WR(sel,0x0036, 0x0404); LCD_CPU_WR(sel,0x0037, 0x0606); LCD_CPU_WR(sel,0x0038, 0x0105); LCD_CPU_WR(sel,0x0039, 0x0707); LCD_CPU_WR(sel,0x003C, 0x0600); LCD_CPU_WR(sel,0x003D, 0x0807); LCD_CPU_WR(sel,0x0050, 0x0000); LCD_CPU_WR(sel,0x0051, 0x00EF); LCD_CPU_WR(sel,0x0052, 0x0000); LCD_CPU_WR(sel,0x0053, 0x013F); LCD_CPU_WR(sel,0x0060, 0x2700); LCD_CPU_WR(sel,0x0061, 0x0001); LCD_CPU_WR(sel,0x006A, 0x0000); LCD_CPU_WR(sel,0x0080, 0x0000); LCD_CPU_WR(sel,0x0081, 0x0000); LCD_CPU_WR(sel,0x0082, 0x0000); LCD_CPU_WR(sel,0x0083, 0x0000); LCD_CPU_WR(sel,0x0084, 0x0000); LCD_CPU_WR(sel,0x0085, 0x0000); LCD_CPU_WR(sel,0x0090, 0x0013); LCD_CPU_WR(sel,0x0092, 0x0000); LCD_CPU_WR(sel,0x0093, 0x0003); LCD_CPU_WR(sel,0x0095, 0x0110); LCD_CPU_WR(sel,0x0097, 0x0000); LCD_CPU_WR(sel,0x0098, 0x0000); LCD_CPU_WR(sel,0x0007, 0x0001); LCD_delay_ms(50); LCD_CPU_WR(sel,0x0007, 0x0021); LCD_CPU_WR(sel,0x0007, 0x0023); LCD_delay_ms(50); LCD_CPU_WR(sel,0x0007, 0x0173); }
void lcd_cpu_cmdset() { LCD_CPU_WR(0, 0x0000, 0x0000); // 同步 LCD_CPU_WR(0, 0x0000, 0x0000); // 同步 LCD_CPU_WR(0, 0x0000, 0x0000); // 同步 LCD_CPU_WR(0, 0x0000, 0x0000); // 同步L LCD_delay(60000); //10ms LCD_CPU_WR(0, 0x0400, 0x6200); //GS=1H0,NL=6H31=>line number=400,SCN=6H00 LCD_CPU_WR(0, 0x0008, 0x0404); //set bp=8lines and fp=8lines, //gamma setting LCD_CPU_WR(0, 0x0300, 0x0C00); //gamma LCD_CPU_WR(0, 0x0301, 0x5A0B); LCD_CPU_WR(0, 0x0302, 0x0906); LCD_CPU_WR(0, 0x0303, 0x1017); LCD_CPU_WR(0, 0x0304, 0x2300); LCD_CPU_WR(0, 0x0305, 0x1700); LCD_CPU_WR(0, 0x0306, 0x6309); LCD_CPU_WR(0, 0x0307, 0x0C09); LCD_CPU_WR(0, 0x0308, 0x100C); LCD_CPU_WR(0, 0x0309, 0x2232); LCD_CPU_WR(0, 0x0010, 0x0010); // DIVI=2H0=>internal clock =1OSC, RTNI=5H16=>clock cycles per line=22clocks LCD_CPU_WR(0, 0x0011, 0x0101); // NOWI=3H1=>no-overlap period=1 internal clock, STDI=3H1=>source output delay time=1 internal clock LCD_CPU_WR(0, 0x0012, 0x0000); // VEQWI=3H0=>VCOM equalize period=0 internal clock, VEQWI=3H0=>Source equalize period=0 internal clock LCD_CPU_WR(0, 0x0013, 0x0001); // MCPI=3H1=>VCOM alternating timing=1 internal clock // POWER CONTROL LCD_CPU_WR(0, 0x0100, 0x0330); //AP=2H3=>electricity amp=1, BT=3H3=>SETUP FACTOR //0730 LCD_CPU_WR(0, 0x0101, 0x0247); //DC1=3H2=>setup2 frequency=line frequency/4 //0117 LCD_CPU_WR(0, 0x0103, 0x0f00); //VDV=5HA=>VCOM amplitude=VREG1OUT*9 //0700 LCD_CPU_WR(0, 0x0280, 0x6800); //VCM=7H40=>VCOMH voltage=VREG1OUT*0.748 // 4d00 LCD_CPU_WR(0, 0x0102, 0xc1B0); //VRH,VCMR,PSON,PON//c1b0 LCD_delay(60000); //10ms // 以下是DISPLAY 模式设置 LCD_CPU_WR(0, 0x0001, 0x0100); //set scan mode,SM=0,SS=1 LCD_CPU_WR(0, 0x0002, 0x0100); //set line inversion or frame inversion:=line inversion,BC=1//0100 LCD_CPU_WR(0, 0x0003, 0x50A8); //set entry mode:BGR=1,ORG=0,ID=2H2,AM=1 LCD_CPU_WR(0, 0x0009, 0x0001); //PTS=0,PTV=0 LCD_CPU_WR(0, 0x000b, 0x0000); LCD_CPU_WR(0, 0x000C, 0x0000); LCD_CPU_WR(0, 0x0090, 0x8000); //external if LCD_CPU_WR(0, 0x000F, 0x0000); //set windows LCD_CPU_WR(0, 0x0210, 0x0000); // LCD_CPU_WR(0, 0x0211, 0x00EF); LCD_CPU_WR(0, 0x0212, 0x0000); LCD_CPU_WR(0, 0x0213, 0x018F); //432=1AF, 400=18F LCD_CPU_WR(0, 0x0500, 0x0000); //Partial Display control LCD_CPU_WR(0, 0x0501, 0x0000); //Partial Display control LCD_CPU_WR(0, 0x0502, 0x005F); LCD_CPU_WR(0, 0x0401, 0x0001); //NDL=0,VLE=0,REV=1 LCD_CPU_WR(0, 0x0404, 0x0000); //VL=9H0 LCD_delay(60000); //10ms //DISPLAY ON LCD_CPU_WR(0,0x0007, 0x0100); //DISPLAY ON!!!!!PTDE=0,BASEE=1 LCD_delay(60000); //10ms LCD_CPU_WR(0,0x0200,0x0000); //INT GRAM address LCD_CPU_WR(0,0x0201, 0x0000); //INT GRAM address //LCD_CPU_WR(0,0x0201,0x0000); //INT GRAM address //LCD_CPU_WR(0,0x0211, 0x00ef); // //LCD_CPU_WR(0,0x0212, 0x0000); // //LCD_CPU_WR(0,0x0213, 0x018f); // }
static void kgm281i0_write_gram_origin(__u32 sel) { LCD_CPU_WR(sel,0x0020, 0); // GRAM horizontal Address LCD_CPU_WR(sel,0x0021, 319); // GRAM Vertical Address LCD_CPU_WR_INDEX(sel,0x22); // Write Memery Start }