예제 #1
0
파일: ILI9327_car.c 프로젝트: silview/C100A
static void  LCD_open_cmd(__u32 sel)
{	
	 __u32 id;

	LCD_delay(60000);
	__inf("LCD_BOOT: wait to power on!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\n");
	
	LCD_CPU_AUTO_FLUSH(0,0);
	__inf("LCD_BOOT: disable auto mode for setting!!!!!!!!!!!!!!!!\n");
	
	LCD_delay(600);
	       
    //LCD_CPU_RD(0x0000,&id);
    __inf("LCD_BOOT: id to read back is %x\n",id);
	
	//setting panel
	lcd_cpu_cmdset();
	__inf("LCD_BOOT: lcd_cpu_cmdset!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\n");

	//command to send data
	LCD_CPU_WR_INDEX(0,0x0202);
	__inf("LCD_BOOT: LCD_CPU_WR_INDEX!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\n");
	
	LCD_CPU_AUTO_FLUSH(0,1);
	__inf("LCD_BOOT: LCD_CPU_AUTO_FLUSH !!!!!!!!!!!!!!!!!!!!!!!!!!!!!\n");
} 
예제 #2
0
파일: Tiky_LCD.c 프로젝트: ash-liu/IST
static void LCD_Rst(void)
{			
    GPIO_ResetBits(GPIOD, GPIO_Pin_13);
    LCD_delay(10);					   
    GPIO_SetBits(GPIOD, GPIO_Pin_13 );		 	 
    LCD_delay(10);	
}
예제 #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);     //
}
예제 #4
0
파일: Tiky_LCD.c 프로젝트: ash-liu/IST
/**********************************************
Lcd初始化函数
***********************************************/
void Lcd_Initialize(void)
{	
LCD_GPIO_Config();
LCD_FSMC_Config();
LCD_Rst();
	
//************* Start Initial Sequence **********//
WriteComm(0xFF); // EXTC Command Set enable register 
WriteData(0xFF); 
WriteData(0x98); 
WriteData(0x06); 

WriteComm(0xBA); // SPI Interface Setting 
WriteData(0xE0); 

WriteComm(0xBC); // GIP 1 
WriteData(0x03); 
WriteData(0x0F); 
WriteData(0x63); 
WriteData(0x69); 
WriteData(0x01); 
WriteData(0x01); 
WriteData(0x1B); 
WriteData(0x11); 
WriteData(0x70); 
WriteData(0x73); 
WriteData(0xFF); 
WriteData(0xFF); 
WriteData(0x08); 
WriteData(0x09); 
WriteData(0x05); 
WriteData(0x00);
WriteData(0xEE); 
WriteData(0xE2); 
WriteData(0x01); 
WriteData(0x00);
WriteData(0xC1); 

WriteComm(0xBD); // GIP 2 
WriteData(0x01); 
WriteData(0x23); 
WriteData(0x45); 
WriteData(0x67); 
WriteData(0x01); 
WriteData(0x23); 
WriteData(0x45); 
WriteData(0x67); 

WriteComm(0xBE); // GIP 3 
WriteData(0x00); 
WriteData(0x22); 
WriteData(0x27); 
WriteData(0x6A); 
WriteData(0xBC); 
WriteData(0xD8); 
WriteData(0x92); 
WriteData(0x22); 
WriteData(0x22); 

WriteComm(0xC7); // Vcom 
WriteData(0x1E);
 
WriteComm(0xED); // EN_volt_reg 
WriteData(0x7F); 
WriteData(0x0F); 
WriteData(0x00); 

WriteComm(0xC0); // Power Control 1
WriteData(0xE3); 
WriteData(0x0B); 
WriteData(0x00);
 
WriteComm(0xFC);
WriteData(0x08); 

WriteComm(0xDF); // Engineering Setting 
WriteData(0x00); 
WriteData(0x00); 
WriteData(0x00); 
WriteData(0x00); 
WriteData(0x00); 
WriteData(0x02); 

WriteComm(0xF3); // DVDD Voltage Setting 
WriteData(0x74); 

WriteComm(0xB4); // Display Inversion Control 
WriteData(0x00); 
WriteData(0x00); 
WriteData(0x00); 

WriteComm(0xF7); // 480x854
WriteData(0x81); 

WriteComm(0xB1); // Frame Rate 
WriteData(0x00); 
WriteData(0x10); 
WriteData(0x14); 

WriteComm(0xF1); // Panel Timing Control 
WriteData(0x29); 
WriteData(0x8A); 
WriteData(0x07); 

WriteComm(0xF2); //Panel Timing Control 
WriteData(0x40); 
WriteData(0xD2); 
WriteData(0x50); 
WriteData(0x28); 

WriteComm(0xC1); // Power Control 2 
WriteData(0x17);
WriteData(0X85); 
WriteData(0x85); 
WriteData(0x20); 

WriteComm(0xE0); 
WriteData(0x00); //P1 
WriteData(0x0C); //P2 
WriteData(0x15); //P3 
WriteData(0x0D); //P4 
WriteData(0x0F); //P5 
WriteData(0x0C); //P6 
WriteData(0x07); //P7 
WriteData(0x05); //P8 
WriteData(0x07); //P9 
WriteData(0x0B); //P10 
WriteData(0x10); //P11 
WriteData(0x10); //P12 
WriteData(0x0D); //P13 
WriteData(0x17); //P14 
WriteData(0x0F); //P15 
WriteData(0x00); //P16 

WriteComm(0xE1); 
WriteData(0x00); //P1 
WriteData(0x0D); //P2 
WriteData(0x15); //P3 
WriteData(0x0E); //P4 
WriteData(0x10); //P5 
WriteData(0x0D); //P6 
WriteData(0x08); //P7 
WriteData(0x06); //P8 
WriteData(0x07); //P9 
WriteData(0x0C); //P10 
WriteData(0x11); //P11 
WriteData(0x11); //P12 
WriteData(0x0E); //P13 
WriteData(0x17); //P14 
WriteData(0x0F); //P15 
WriteData(0x00); //P16

WriteComm(0x35); //Tearing Effect ON 
WriteData(0x00); 

WriteComm(0x36); 
WriteData(0x60); 

WriteComm(0x3A); 
WriteData(0x55); 

WriteComm(0x11); //Exit Sleep 
LCD_delay(120); 
WriteComm(0x29); // Display On 
LCD_delay(10);
	Lcd_Light_ON;
	
	WriteComm(0x3A); WriteData(0x55);
	WriteComm(0x36); WriteData(0xA8);
	Lcd_ColorBox(0,0,800,480,YELLOW);
	
// 	LCD_Fill_Pic(80,160,320,480, gImage_MM_T035);
// 	BlockWrite(0,0,799,479);
}
예제 #5
0
void Adafruit_TFTLCD::begin(uint16_t id) {
  uint8_t i = 0;

  reset();

  if((id == 0x9325) || (id == 0x9328)) {

    uint16_t a, d;
    driver = ID_932X;
//    CS_ACTIVE;  // BLH: CS is always asserted.
    while(i < sizeof(ILI932x_regValues) / sizeof(uint16_t)) {
      a = pgm_read_word(&ILI932x_regValues[i++]);
      d = pgm_read_word(&ILI932x_regValues[i++]);
      if(a == TFTLCD_DELAY) LCD_delay(d);
      else                  writeRegister16(a, d);
    }
    setRotation(rotation);
    setAddrWindow(0, 0, TFTWIDTH-1, TFTHEIGHT-1);

  } else if (id == 0x9341) {

    uint16_t a, d;
    driver = ID_9341;
//     CS_ACTIVE;  // BLH: CS is always asserted.
    writeRegister8(ILI9341_SOFTRESET, 0);
    LCD_delay(50);
    writeRegister8(ILI9341_DISPLAYOFF, 0);

    writeRegister8(ILI9341_POWERCONTROL1, 0x23);
    writeRegister8(ILI9341_POWERCONTROL2, 0x10);
    writeRegister16(ILI9341_VCOMCONTROL1, 0x2B2B);
    writeRegister8(ILI9341_VCOMCONTROL2, 0xC0);
    writeRegister8(ILI9341_MEMCONTROL, ILI9341_MADCTL_MY | ILI9341_MADCTL_BGR);
    writeRegister8(ILI9341_PIXELFORMAT, 0x55);
    writeRegister16(ILI9341_FRAMECONTROL, 0x001B);

    writeRegister8(ILI9341_ENTRYMODE, 0x07);
    /* writeRegister32(ILI9341_DISPLAYFUNC, 0x0A822700);*/

    writeRegister8(ILI9341_SLEEPOUT, 0);
    LCD_delay(150);
    writeRegister8(ILI9341_DISPLAYON, 0);
    LCD_delay(500);
    setAddrWindow(0, 0, TFTWIDTH-1, TFTHEIGHT-1);

  } else if(id == 0x7575) {

    uint8_t a, d;
    driver = ID_7575;
    // CS_ACTIVE;  // BLH: CS is always asserted.
    while(i < sizeof(HX8347G_regValues)) {
      a = pgm_read_byte(&HX8347G_regValues[i++]);
      d = pgm_read_byte(&HX8347G_regValues[i++]);
      if(a == TFTLCD_DELAY) LCD_delay(d);
      else                  writeRegister8(a, d);
    }
    setRotation(rotation);
    setLR(); // Lower-right corner of address window

  } else {
    driver = ID_UNKNOWN;
    return;
  }
}