398 lines
		
	
	
		
			8.8 KiB
		
	
	
	
		
			C
		
	
	
	
			
		
		
	
	
			398 lines
		
	
	
		
			8.8 KiB
		
	
	
	
		
			C
		
	
	
	
| #if defined (SSD1963_480_DRIVER)
 | |
| 
 | |
|   writecommand(0xE2);   //PLL multiplier, set PLL clock to 120M
 | |
|   writedata(0x23);      //N=0x36 for 6.5M, 0x23 for 10M crystal
 | |
|   writedata(0x02);
 | |
|   writedata(0x54);
 | |
|   writecommand(0xE0);   // PLL enable
 | |
|   writedata(0x01);
 | |
| 
 | |
|   delay(10);
 | |
| 
 | |
|   writecommand(0xE0);
 | |
|   writedata(0x03);
 | |
| 
 | |
|   delay(10);
 | |
| 
 | |
|   writecommand(0x01);   // software reset
 | |
| 
 | |
|   delay(100);
 | |
| 
 | |
|   writecommand(0xE6);   //PLL setting for PCLK, depends on resolution
 | |
|   writedata(0x01);
 | |
|   writedata(0x1F);
 | |
|   writedata(0xFF);
 | |
| 
 | |
|   writecommand(0xB0);   //LCD SPECIFICATION
 | |
|   writedata(0x20);
 | |
|   writedata(0x00);
 | |
|   writedata(0x01);    //Set HDP 479
 | |
|   writedata(0xDF);
 | |
|   writedata(0x01);    //Set VDP 271
 | |
|   writedata(0x0F);
 | |
|   writedata(0x00);
 | |
| 
 | |
|   writecommand(0xB4);   //HSYNC
 | |
|   writedata(0x02);    //Set HT  531
 | |
|   writedata(0x13);
 | |
|   writedata(0x00);    //Set HPS 8
 | |
|   writedata(0x08);
 | |
|   writedata(0x2B);    //Set HPW 43
 | |
|   writedata(0x00);    //Set LPS 2
 | |
|   writedata(0x02);
 | |
|   writedata(0x00);
 | |
| 
 | |
|   writecommand(0xB6);   //VSYNC
 | |
|   writedata(0x01);    //Set VT  288
 | |
|   writedata(0x20);
 | |
|   writedata(0x00);    //Set VPS 4
 | |
|   writedata(0x04);
 | |
|   writedata(0x0c);    //Set VPW 12
 | |
|   writedata(0x00);    //Set FPS 2
 | |
|   writedata(0x02);
 | |
| 
 | |
|   writecommand(0xBA);
 | |
|   writedata(0x0F);    //GPIO[3:0] out 1
 | |
| 
 | |
|   writecommand(0xB8);
 | |
|   writedata(0x07);      //GPIO3=input, GPIO[2:0]=output
 | |
|   writedata(0x01);    //GPIO0 normal
 | |
| 
 | |
|   writecommand(0x36);   //rotation
 | |
|   writedata(0x21 | TFT_MAD_COLOR_ORDER);
 | |
| 
 | |
|   writecommand(0xF0);   //pixel data interface
 | |
|   writedata(0x00);      //8 bit bus
 | |
| 
 | |
|   delay(1);
 | |
| 
 | |
|   writecommand(0xB8);
 | |
|   writedata(0x0f);    //GPIO is controlled by host GPIO[3:0]=output   GPIO[0]=1  LCD ON  GPIO[0]=1  LCD OFF 
 | |
|   writedata(0x01);    //GPIO0 normal
 | |
| 
 | |
|   writecommand(0xBA);
 | |
|   writedata(0x01);    //GPIO[0] out 1 --- LCD display on/off control PIN
 | |
| 
 | |
|   writecommand(0x2A); 
 | |
|   writedata(0);
 | |
|   writedata(0);
 | |
|   writedata((271 & 0xFF00)>>8);
 | |
|   writedata(271 & 0xFF);
 | |
| 
 | |
|   writecommand(0x2B); 
 | |
|   writedata(0);
 | |
|   writedata(0);
 | |
|   writedata((479 & 0xFF00)>>8);
 | |
|   writedata(479 & 0xFF);
 | |
| 
 | |
|   writecommand(0x2C);
 | |
| 
 | |
|   writecommand(0x29);   //display on
 | |
| 
 | |
|   writecommand(0xBE);   //set PWM for B/L
 | |
|   writedata(0x06);
 | |
|   writedata(0xf0);
 | |
|   writedata(0x01);
 | |
|   writedata(0xf0);
 | |
|   writedata(0x00);
 | |
|   writedata(0x00);
 | |
| 
 | |
|   writecommand(0xd0); 
 | |
|   writedata(0x0d);  
 | |
| 
 | |
|   writecommand(0x2C); 
 | |
| 
 | |
| #elif defined (SSD1963_800_DRIVER)
 | |
| 
 | |
|   writecommand(0xE2);   //PLL multiplier, set PLL clock to 120M
 | |
|   writedata(0x1E);      //N=0x36 for 6.5M, 0x23 for 10M crystal
 | |
|   writedata(0x02);
 | |
|   writedata(0x54);
 | |
|   writecommand(0xE0);   // PLL enable
 | |
|   writedata(0x01);
 | |
| 
 | |
|   delay(10);
 | |
| 
 | |
|   writecommand(0xE0);
 | |
|   writedata(0x03);
 | |
| 
 | |
|   delay(10);
 | |
| 
 | |
|   writecommand(0x01);   // software reset
 | |
| 
 | |
|   delay(100);
 | |
| 
 | |
|   writecommand(0xE6);   //PLL setting for PCLK, depends on resolution
 | |
|   writedata(0x03);
 | |
|   writedata(0xFF);
 | |
|   writedata(0xFF);
 | |
| 
 | |
|   writecommand(0xB0);   //LCD SPECIFICATION
 | |
|   writedata(0x20);
 | |
|   writedata(0x00);
 | |
|   writedata(0x03);    //Set HDP 799
 | |
|   writedata(0x1F);
 | |
|   writedata(0x01);    //Set VDP 479
 | |
|   writedata(0xDF);
 | |
|   writedata(0x00);
 | |
| 
 | |
|   writecommand(0xB4);   //HSYNC
 | |
|   writedata(0x03);    //Set HT  928
 | |
|   writedata(0xA0);
 | |
|   writedata(0x00);    //Set HPS 46
 | |
|   writedata(0x2E);
 | |
|   writedata(0x30);    //Set HPW 48
 | |
|   writedata(0x00);    //Set LPS 15
 | |
|   writedata(0x0F);
 | |
|   writedata(0x00);
 | |
| 
 | |
|   writecommand(0xB6);   //VSYNC
 | |
|   writedata(0x02);    //Set VT  525
 | |
|   writedata(0x0D);
 | |
|   writedata(0x00);    //Set VPS 16
 | |
|   writedata(0x10);
 | |
|   writedata(0x10);    //Set VPW 16
 | |
|   writedata(0x00);    //Set FPS 8
 | |
|   writedata(0x08);
 | |
| 
 | |
|   writecommand(0xBA);
 | |
|   writedata(0x0F);    //GPIO[3:0] out 1
 | |
| 
 | |
|   writecommand(0xB8);
 | |
|   writedata(0x07);      //GPIO3=input, GPIO[2:0]=output
 | |
|   writedata(0x01);    //GPIO0 normal
 | |
| 
 | |
|   writecommand(0x36);   //rotation
 | |
|   writedata(0x21 | TFT_MAD_COLOR_ORDER);
 | |
| 
 | |
|   writecommand(0xF0);   //pixel data interface
 | |
|   writedata(0x00);      //8 bit bus
 | |
| 
 | |
|   delay(1);
 | |
| 
 | |
|   writecommand(0xB8);
 | |
|   writedata(0x0f);    //GPIO is controlled by host GPIO[3:0]=output   GPIO[0]=1  LCD ON  GPIO[0]=1  LCD OFF 
 | |
|   writedata(0x01);    //GPIO0 normal
 | |
| 
 | |
|   writecommand(0xBA);
 | |
|   writedata(0x01);    //GPIO[0] out 1 --- LCD display on/off control PIN
 | |
| 
 | |
|   writecommand(0x2A); 
 | |
|   writedata(0);
 | |
|   writedata(0);
 | |
|   writedata((479 & 0xFF00)>>8);
 | |
|   writedata(479 & 0xFF);
 | |
| 
 | |
|   writecommand(0x2B); 
 | |
|   writedata(0);
 | |
|   writedata(0);
 | |
|   writedata((799 & 0xFF00)>>8);
 | |
|   writedata(799 & 0xFF);
 | |
| 
 | |
|   writecommand(0x2C);
 | |
| 
 | |
|   writecommand(0x29);   //display on
 | |
| 
 | |
|   writecommand(0xBE);   //set PWM for B/L
 | |
|   writedata(0x06);
 | |
|   writedata(0xf0);
 | |
|   writedata(0x01);
 | |
|   writedata(0xf0);
 | |
|   writedata(0x00);
 | |
|   writedata(0x00);
 | |
| 
 | |
|   writecommand(0xd0); 
 | |
|   writedata(0x0d);  
 | |
| 
 | |
|   writecommand(0x2C); 
 | |
| 
 | |
| #elif defined (SSD1963_800ALT_DRIVER)
 | |
| 
 | |
|   writecommand(0xE2);   //PLL multiplier, set PLL clock to 120M
 | |
|   writedata(0x23);      //N=0x36 for 6.5M, 0x23 for 10M crystal
 | |
|   writedata(0x02);
 | |
|   writedata(0x04);
 | |
|   writecommand(0xE0);   // PLL enable
 | |
|   writedata(0x01);
 | |
| 
 | |
|   delay(10);
 | |
| 
 | |
|   writecommand(0xE0);
 | |
|   writedata(0x03);
 | |
| 
 | |
|   delay(10);
 | |
| 
 | |
|   writecommand(0x01);   // software reset
 | |
| 
 | |
|   delay(100);
 | |
| 
 | |
|   writecommand(0xE6);   //PLL setting for PCLK, depends on resolution
 | |
|   writedata(0x04);
 | |
|   writedata(0x93);
 | |
|   writedata(0xE0);
 | |
| 
 | |
|   writecommand(0xB0);   //LCD SPECIFICATION
 | |
|   writedata(0x00);  // 0x24
 | |
|   writedata(0x00);
 | |
|   writedata(0x03);    //Set HDP 799
 | |
|   writedata(0x1F);
 | |
|   writedata(0x01);    //Set VDP 479
 | |
|   writedata(0xDF);
 | |
|   writedata(0x00);
 | |
| 
 | |
|   writecommand(0xB4);   //HSYNC
 | |
|   writedata(0x03);    //Set HT  928
 | |
|   writedata(0xA0);
 | |
|   writedata(0x00);    //Set HPS 46
 | |
|   writedata(0x2E);
 | |
|   writedata(0x30);    //Set HPW 48
 | |
|   writedata(0x00);    //Set LPS 15
 | |
|   writedata(0x0F);
 | |
|   writedata(0x00);
 | |
| 
 | |
|   writecommand(0xB6);   //VSYNC
 | |
|   writedata(0x02);    //Set VT  525
 | |
|   writedata(0x0D);
 | |
|   writedata(0x00);    //Set VPS 16
 | |
|   writedata(0x10);
 | |
|   writedata(0x10);    //Set VPW 16
 | |
|   writedata(0x00);    //Set FPS 8
 | |
|   writedata(0x08);
 | |
| 
 | |
|   writecommand(0xBA);
 | |
|   writedata(0x05);    //GPIO[3:0] out 1
 | |
| 
 | |
|   writecommand(0xB8);
 | |
|   writedata(0x07);      //GPIO3=input, GPIO[2:0]=output
 | |
|   writedata(0x01);    //GPIO0 normal
 | |
| 
 | |
|   writecommand(0x36);   //rotation
 | |
|   writedata(0x21 | TFT_MAD_COLOR_ORDER);    // -- Set rotation
 | |
| 
 | |
|   writecommand(0xF0);   //pixel data interface
 | |
|   writedata(0x00);      //8 bit bus
 | |
| 
 | |
|   delay(10);
 | |
| 
 | |
|   writecommand(0x2A); 
 | |
|   writedata(0);
 | |
|   writedata(0);
 | |
|   writedata((479 & 0xFF00)>>8);
 | |
|   writedata(479 & 0xFF);
 | |
| 
 | |
|   writecommand(0x2B); 
 | |
|   writedata(0);
 | |
|   writedata(0);
 | |
|   writedata((799 & 0xFF00)>>8);
 | |
|   writedata(799 & 0xFF);
 | |
| 
 | |
|   writecommand(0x2C);
 | |
| 
 | |
|   writecommand(0x29);   //display on
 | |
| 
 | |
|   writecommand(0xBE);   //set PWM for B/L
 | |
|   writedata(0x06);
 | |
|   writedata(0xF0);
 | |
|   writedata(0x01);
 | |
|   writedata(0xF0);
 | |
|   writedata(0x00);
 | |
|   writedata(0x00);
 | |
| 
 | |
|   writecommand(0xD0); 
 | |
|   writedata(0x0D);  
 | |
| 
 | |
|   writecommand(0x2C); 
 | |
| 
 | |
| #elif defined (SSD1963_800BD_DRIVER) // Copied from Buy Display code
 | |
| 
 | |
|   writecommand(0xE2);   //PLL multiplier, set PLL clock to 120M
 | |
|   writedata(0x23);      //N=0x36 for 6.5M, 0x23 for 10M crystal
 | |
|   writedata(0x02);
 | |
|   writedata(0x54);
 | |
| 
 | |
|   writecommand(0xE0);   // PLL enable
 | |
|   writedata(0x01);
 | |
| 
 | |
|   delay(10);
 | |
| 
 | |
|   writecommand(0xE0);
 | |
|   writedata(0x03);
 | |
| 
 | |
|   delay(10);
 | |
| 
 | |
|   writecommand(0x01);   // software reset
 | |
| 
 | |
|   delay(100);
 | |
| 
 | |
|   writecommand(0xE6);   //PLL setting for PCLK, depends on resolution
 | |
|   writedata(0x03);
 | |
|   writedata(0x33);
 | |
|   writedata(0x33);
 | |
| 
 | |
|   writecommand(0xB0);    //LCD SPECIFICATION
 | |
|   writedata(0x20);
 | |
|   writedata(0x00);
 | |
|   writedata(799 >> 8);   //Set HDP 799
 | |
|   writedata(799 & 0xFF);
 | |
|   writedata(479 >> 8);   //Set VDP 479
 | |
|   writedata(479 & 0xFF);
 | |
|   writedata(0x00);
 | |
| 
 | |
|   writecommand(0xB4);   //HSYNC
 | |
|   writedata(0x04);      //Set HT
 | |
|   writedata(0x1F);
 | |
|   writedata(0x00);      //Set HPS
 | |
|   writedata(0xD2);
 | |
|   writedata(0x00);      //Set HPW
 | |
|   writedata(0x00);      //Set LPS
 | |
|   writedata(0x00);
 | |
|   writedata(0x00);
 | |
| 
 | |
|   writecommand(0xB6);   //VSYNC
 | |
|   writedata(0x02);    //Set VT
 | |
|   writedata(0x0C);
 | |
|   writedata(0x00);    //Set VPS
 | |
|   writedata(0x22);
 | |
|   writedata(0x00);    //Set VPW
 | |
|   writedata(0x00);    //Set FPS
 | |
|   writedata(0x00);
 | |
| 
 | |
|   writecommand(0xB8);
 | |
|   writedata(0x0F);      //GPIO3=input, GPIO[2:0]=output
 | |
|   writedata(0x01);      //GPIO0 normal
 | |
| 
 | |
|   writecommand(0xBA);
 | |
|   writedata(0x01);    //GPIO[0] out 1 --- LCD display on/off control PIN
 | |
| 
 | |
|   writecommand(0x36);   //rotation
 | |
|   writedata(0x21 | TFT_MAD_COLOR_ORDER);      //set to rotate
 | |
| 
 | |
| 	//writecommand(0x003A); //Set the current pixel format for RGB image data
 | |
| 	//writedata(0x0050);    //16-bit/pixel
 | |
| 
 | |
|   writecommand(0xF0);   //pixel data interface
 | |
|   writedata(0x00);      //000 = 8 bit bus, 011 = 16 bit, 110 = 9 bit
 | |
| 
 | |
|   writecommand(0xBC);
 | |
|   writedata(0x40);     //contrast value
 | |
|   writedata(0x80);     //brightness value
 | |
|   writedata(0x40);     //saturation value
 | |
|   writedata(0x01);     //Post Processor Enable
 | |
| 
 | |
| 
 | |
|   delay(10);
 | |
| 
 | |
|   writecommand(0x29);   //display on
 | |
| 
 | |
|   writecommand(0xBE);   //set PWM for B/L
 | |
|   writedata(0x06);
 | |
|   writedata(0x80);
 | |
|   writedata(0x01);
 | |
|   writedata(0xF0);
 | |
|   writedata(0x00);
 | |
|   writedata(0x00);
 | |
| 
 | |
|   writecommand(0xD0); 
 | |
|   writedata(0x0D);  
 | |
| 
 | |
| #endif |