Ejemplo n.º 1
0
void ili9320_vline(int ys, int ye, int x, int c)
{
    
    switch(lcd_id)
    {
        case 0x9320:
            write_reg(0x03,(0<<5)|(0<<4)|(1<<3)|(1<<12));
            write_reg(0x0020, x);
            write_reg(0x0021, ys);
            WMLCDCOM(0x0022);
            while(ys < ye)
            {
                WMLCDDATA(c);
                ys++;
            }
           // write_reg(0x03,(1<<5)|(1<<4)|(0<<3)|(1<<12));
            break;
        case 0x8989:
            write_reg(0x11,(0<<5)|(0<<4)|(1<<3));
            write_reg(0x004e, x);
            write_reg(0x004f, ys);
            WMLCDCOM(0x0022);
            while(ys < ye)
            {
            WMLCDDATA(c);
            ys++;
            }
          // write_reg(0x11,(1<<5)|(1<<4)|(0<<3));
            break;
        default:
            break;   
    }
}
Ejemplo n.º 2
0
void ili9320_hline(int xs, int xe, int y, int c)
{
    switch(lcd_id)
    {
        case 0x9320:
            write_reg(0x03,(1<<5)|(1<<4)|(0<<3)|(1<<12));
            write_reg(0x0020, xs);
            write_reg(0x0021, y);
            WMLCDCOM(0x0022);
            while(xs < xe)
            {
                WMLCDDATA(c);
                xs++;
            }
          //  write_reg(0x03,(1<<5)|(1<<4)|(0<<3)|(1<<12));
            break;
        case 0x8989:
            write_reg(0x11,(1<<5)|(1<<4)|(0<<3));
            write_reg(0x004e, xs);
            write_reg(0x004f, y);
            WMLCDCOM(0x0022);
            while(xs < xe)
            {
            WMLCDDATA(c);
            xs++;
            }
            write_reg(0x11,(1<<5)|(1<<4)|(0<<3));
            break;
        default:
            break;   
    }
   
}
Ejemplo n.º 3
0
void ili9325_write_pixel(int x, int y, int c)
{
    write_reg(0x0020, x);
    write_reg(0x0021, y);
    WMLCDCOM(0x0022);
    WMLCDDATA(c);
}
Ejemplo n.º 4
0
void ili9320_write_gram(uint16_t *buf, int len)
{
    WMLCDCOM(0x0022);
    while(len--)
    {
        WMLCDDATA(*buf++);
    }
}
Ejemplo n.º 5
0
void ili9325_clear(int c)
{
    int i;
    ili9325_set_window(0, 0, LCD_X_MAX, LCD_Y_MAX);
    WMLCDCOM(0x22);
    for(i = 0; i < (LCD_X_MAX * LCD_Y_MAX); i++)
    {
        WMLCDDATA(c);
    }
}
Ejemplo n.º 6
0
void ili9320_write_pixel(int x, int y, int c)
{
    switch(lcd_id)
    {
        case 0x9320:
            write_reg(0x0020, x);
            write_reg(0x0021, y);
            WMLCDCOM(0x0022);
            WMLCDDATA(c);
            break;
        case 0x8989:
            write_reg(0x004e,x);        
            write_reg(0x004f,y);  
            WMLCDCOM(0x0022);
            WMLCDDATA(c);
            break;
        default:
            break;   
    }
  
}
Ejemplo n.º 7
0
void GUI_DrawPixel(int color, int x, int y)
{
    switch(lcd_id)
    {
        case 0x9320:
            write_reg(0x0020, x);
            write_reg(0x0021, y);
            WMLCDCOM(0x0022);
            WMLCDDATA(color);
            break;
        case 0x8989:
            write_reg(0x004e,x);        
            write_reg(0x004f,y);  
            WMLCDCOM(0x0022);
            WMLCDDATA(color);
            break;
        default:
            break;   
    }
    
}
Ejemplo n.º 8
0
void ili9320_hline(int xs, int xe, int y, int c)
{
    write_reg(0x03,(1<<5)|(1<<4)|(0<<3)|(1<<12));
    write_reg(0x0020, xs);
    write_reg(0x0021, y);
    WMLCDCOM(0x0022);
    while(xs < xe)
    {
        WMLCDDATA(c);
        xs++;
    }
}
Ejemplo n.º 9
0
void ili9320_vline(int ys, int ye, int x, int c)
{
    write_reg(0x03,(0<<5)|(0<<4)|(1<<3)|(1<<12));
    write_reg(0x0020, x);
    write_reg(0x0021, ys);
    WMLCDCOM(0x0022);
    while(ys < ye)
    {
        WMLCDDATA(c);
        ys++;
    }
    write_reg(0x03,(1<<5)|(1<<4)|(0<<3)|(1<<12));
}
Ejemplo n.º 10
0
static void write_reg(uint16_t addr, uint16_t val)
{
    WMLCDCOM(addr);
    WMLCDDATA(val);
}
Ejemplo n.º 11
0
void LCD_SPI_Init(void)
{
    spi_Open();     //SPI status initialize, Ray 13-09-24 
 
	WMLCDCOMD(0xB0); // Manufacturer Command Access Protect -ok
    WMLCDDATA(0x3F);
	WMLCDDATA(0x3F);
    //Sleep(5);
	LcdSleep(5);
	
	WMLCDCOMD(0xFE);   //??
	WMLCDDATA(0x00);
	WMLCDDATA(0x00);
	WMLCDDATA(0x00);
	WMLCDDATA(0x21);
	WMLCDDATA(0xB4);
	
	WMLCDCOMD(0xB3); // Frame Memory Access and Interface Setting
	WMLCDDATA(0x00);
	WMLCDDATA(0x10);
	
	WMLCDCOMD(0xE0); // NVM Access Control
	WMLCDDATA(0x00); // NVAE: NVM access enable register. NVM access is enabled when NVAE=1
	WMLCDDATA(0x40); // FTT: NVM control bit.
	//Sleep(10);
	LcdSleep(10);
	WMLCDCOMD(0xB3); // Frame Memory Access and Interface Setting
	WMLCDDATA(0x00);
	WMLCDDATA(0x00);
	
	WMLCDCOMD(0xFE); // MAGIC - TODO
	WMLCDDATA(0x00);
	WMLCDDATA(0x00);
	WMLCDDATA(0x00);
	WMLCDDATA(0x21);
	WMLCDDATA(0x30);
	
	WMLCDCOMD(0xB0); // Manufacturer Command Access Protect
	WMLCDDATA(0x3F);
	WMLCDDATA(0x3F);    //??
	
	WMLCDCOMD(0xB3); // Frame Memory Access and Interface Setting -ok
	WMLCDDATA(0x02);
	WMLCDDATA(0x00);
	WMLCDDATA(0x00);
	WMLCDDATA(0x00);
	        	   	
	WMLCDCOMD(0xB4); //SET interface -ok
	WMLCDDATA(0x10);
	
	WMLCDCOMD(0xC0); //Panel Driving Setting -ok
	WMLCDDATA(0x03); //GIP REV  SM GS BGR SS
	WMLCDDATA(0x4F);
	WMLCDDATA(0x00);
	WMLCDDATA(0x10);
	WMLCDDATA(0xA2); //BLV=0 LINE
	WMLCDDATA(0x00);
	WMLCDDATA(0x01);
	WMLCDDATA(0x00);
	
	WMLCDCOMD(0xC1); //Display Timing Setting for Normal/Partial Mode
	WMLCDDATA(0x01);
	WMLCDDATA(0x02);
	WMLCDDATA(0x19);
	WMLCDDATA(0x08);
	WMLCDDATA(0x08);
	//Sleep(25);
    LcdSleep(25);
	WMLCDCOMD(0xC3); //PRTIAL MODE  -ok
	WMLCDDATA(0x01);
	WMLCDDATA(0x00);
	WMLCDDATA(0x28);
	WMLCDDATA(0x08);
	WMLCDDATA(0x08);
	//Sleep(25);
	LcdSleep(25);
	WMLCDCOMD(0xC4);    //-ok
	WMLCDDATA(0x11);
	WMLCDDATA(0x01);
	WMLCDDATA(0x43);
	WMLCDDATA(0x04);
	
	WMLCDCOMD(0xC8); //set gamma
	WMLCDDATA(0x0C);
	WMLCDDATA(0x0C);
	WMLCDDATA(0x0D);
	WMLCDDATA(0x14);
	WMLCDDATA(0x18);
	WMLCDDATA(0x0E);
	WMLCDDATA(0x09);
	WMLCDDATA(0x09);
	WMLCDDATA(0x03);
	WMLCDDATA(0x05);
	WMLCDDATA(0x00);
	WMLCDDATA(0x03);
	WMLCDDATA(0x08);
	WMLCDDATA(0x07);
	WMLCDDATA(0x0E);
	WMLCDDATA(0x15);
	WMLCDDATA(0x12);
	WMLCDDATA(0x0A);
	WMLCDDATA(0x0E);
	WMLCDDATA(0x0A);
	WMLCDDATA(0x0A);
	WMLCDDATA(0x00);
	
	WMLCDCOMD(0xC9); //set gamma
	WMLCDDATA(0x0C);
	WMLCDDATA(0x0C);
	WMLCDDATA(0x0D);
	WMLCDDATA(0x14);
	WMLCDDATA(0x18);
	WMLCDDATA(0x0E);
	WMLCDDATA(0x09);
	WMLCDDATA(0x09);
	WMLCDDATA(0x03);
	WMLCDDATA(0x05);
	WMLCDDATA(0x00);
	WMLCDDATA(0x03);
	WMLCDDATA(0x08);
	WMLCDDATA(0x07);
	WMLCDDATA(0x0E);
	WMLCDDATA(0x15);
	WMLCDDATA(0x12);
	WMLCDDATA(0x0A);
	WMLCDDATA(0x0E);
	WMLCDDATA(0x0A);
	WMLCDDATA(0x0A);
	WMLCDDATA(0x00);
	
	WMLCDCOMD(0xCA); //set gamma
	WMLCDDATA(0x0C);
	WMLCDDATA(0x0C);
	WMLCDDATA(0x0D);
	WMLCDDATA(0x14);
	WMLCDDATA(0x18);
	WMLCDDATA(0x0E);
	WMLCDDATA(0x09);
	WMLCDDATA(0x09);
	WMLCDDATA(0x03);
	WMLCDDATA(0x05);
	WMLCDDATA(0x00);
	WMLCDDATA(0x03);
	WMLCDDATA(0x08);
	WMLCDDATA(0x07);
	WMLCDDATA(0x0E);
	WMLCDDATA(0x15);
	WMLCDDATA(0x12);
	WMLCDDATA(0x0A);
	WMLCDDATA(0x0E);
	WMLCDDATA(0x0A);
	WMLCDDATA(0x0A);
	WMLCDDATA(0x00);    // -ok
	
	WMLCDCOMD(0xD0); //Power Setting    -ok
	WMLCDDATA(0x63); //BT[2:0]=110  VCI+VCI2¡Á2  :5   -(VCI2¡Á2): //??
	WMLCDDATA(0x53);
	WMLCDDATA(0x82); //VC2[2:0]=010,VCI2=5V
	WMLCDDATA(0x3F); //VREG=5.0V        //??
	
	WMLCDCOMD(0xD1); //set vcom //-ok
	WMLCDDATA(0x6A); //VCOMH
	WMLCDDATA(0x64); //VDV
	
	WMLCDCOMD(0xD2); //Power Setting (Note 1) for Normal/Partial Mode
	WMLCDDATA(0x03);
	WMLCDDATA(0x24);
	
	WMLCDCOMD(0xD4); //Power Setting (Note 1) for Idle Mode
	WMLCDDATA(0x03);
	WMLCDDATA(0x24);
	
	WMLCDCOMD(0xE2); //NVM Load Control
	WMLCDDATA(0x3F);

	WMLCDCOMD(0x35); //set_tear_on
	WMLCDDATA(0x00);
	
	WMLCDCOMD(0x36);
	WMLCDDATA(0x00);
	
	WMLCDCOMD(0x3A); //set_pixel_format
	WMLCDDATA(0x66); // 66 18-bits
	
	WMLCDCOMD(0x2A); //set_column_address
	WMLCDDATA(0x00);
	WMLCDDATA(0x00);
	WMLCDDATA(0x00);
	WMLCDDATA(0xEF);
	
	WMLCDCOMD(0x2B); //set_page_address:
	WMLCDDATA(0x00);
	WMLCDDATA(0x00);
	WMLCDDATA(0x01);
	WMLCDDATA(0x3F);
	
	WMLCDCOMD(0x11); //exit_sleep_mode
	//Sleep(120);
	LcdSleep(120);
	WMLCDCOMD(0x29); //set_display_on
	//Sleep(30);
	LcdSleep(30);
	//WMLCDCOMD(0xFF); //send DDRAM set
	WMLCDCOMD(0x2C);

    //ShowLogo();   //13-09-27
    
	//SPIClose(hSPI);
}