예제 #1
0
파일: ILI9327_car.c 프로젝트: silview/C100A
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);
}
예제 #3
0
파일: ILI9327_car.c 프로젝트: silview/C100A
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
}