// HX8363A for 3.5" TFT void Driver_Initial(void) { Driver_Reset(); //------ Set EXTC ------ SPI_Send(0, 0xb9); SPI_Send(1, 0xff); SPI_Send(1, 0x83); SPI_Send(1, 0x63); //------ Set Power ------ SPI_Send(0, 0xb1); SPI_Send(1, 0x81); SPI_Send(1, 0x30); SPI_Send(1, 0x04); SPI_Send(1, 0x34); SPI_Send(1, 0x02); SPI_Send(1, 0x13); SPI_Send(1, 0x11); SPI_Send(1, 0x00); SPI_Send(1, 0x3a); SPI_Send(1, 0x42); SPI_Send(1, 0x3f); SPI_Send(1, 0x3f); // ------ Sleep Out ------ SPI_Send(0, 0x11); Delay(300); // ------ Set CYC ------ SPI_Send(0, 0xb4); SPI_Send(1, 0x04); SPI_Send(1, 0x12); SPI_Send(1, 0x72); SPI_Send(1, 0x12); SPI_Send(1, 0x06); SPI_Send(1, 0x03); SPI_Send(1, 0x54); SPI_Send(1, 0x03); SPI_Send(1, 0x4e); SPI_Send(0, 0xbf); SPI_Send(1, 0x00); SPI_Send(1, 0x10); // ------ Set VCOM ------ SPI_Send(0, 0xb6); SPI_Send(1, 0x52); // ------ Memory Accress control ------ SPI_Send(0, 0x36); SPI_Send(1, 0x0a); // ------ Set RGB Interface ------ SPI_Send(0, 0xb3); SPI_Send(1, 0x01); // ------ Set Gamma 2.2 ------ SPI_Send(0, 0xe0); SPI_Send(1, 0x00); SPI_Send(1, 0x20); SPI_Send(1, 0x20); SPI_Send(1, 0x0f); SPI_Send(1, 0x0f); SPI_Send(1, 0x3f); SPI_Send(1, 0x01); SPI_Send(1, 0x84); SPI_Send(1, 0x53); SPI_Send(1, 0x57); SPI_Send(1, 0x18); SPI_Send(1, 0xd6); SPI_Send(1, 0x57); SPI_Send(1, 0x11); SPI_Send(1, 0x18); SPI_Send(1, 0x00); SPI_Send(1, 0x20); SPI_Send(1, 0x20); SPI_Send(1, 0x0f); SPI_Send(1, 0x0f); SPI_Send(1, 0x3f); SPI_Send(1, 0x01); SPI_Send(1, 0x84); SPI_Send(1, 0x53); SPI_Send(1, 0x57); SPI_Send(1, 0x18); SPI_Send(1, 0xd6); SPI_Send(1, 0x57); SPI_Send(1, 0x11); SPI_Send(1, 0x18); Delay(500); /* // ------ Set Gamma 2.4 ------ SPI_Send(0, 0xe0); SPI_Send(1, 0x00); SPI_Send(1, 0x20); SPI_Send(1, 0x20); SPI_Send(1, 0x0d); SPI_Send(1, 0x0c); SPI_Send(1, 0x3c); SPI_Send(1, 0x01); SPI_Send(1, 0x82); SPI_Send(1, 0x12); SPI_Send(1, 0x56); SPI_Send(1, 0x19); SPI_Send(1, 0xd7); SPI_Send(1, 0x17); SPI_Send(1, 0x53); SPI_Send(1, 0x19); SPI_Send(1, 0x00); SPI_Send(1, 0x20); SPI_Send(1, 0x20); SPI_Send(1, 0x0d); SPI_Send(1, 0x0c); SPI_Send(1, 0x3c); SPI_Send(1, 0x01); SPI_Send(1, 0x82); SPI_Send(1, 0x12); SPI_Send(1, 0x56); SPI_Send(1, 0x19); SPI_Send(1, 0xd7); SPI_Send(1, 0x17); SPI_Send(1, 0x53); SPI_Send(1, 0x19); Delay(500); */ // ------ Set Panel ------ SPI_Send(0, 0xcc); SPI_Send(1, 0x01); Delay(500); // ------ Set Colmod ------ SPI_Send(0, 0x3a); SPI_Send(1, 0x66); // ------ Display On ------ SPI_Send(0, 0x29); Delay(1000); } ---------------------------------------------------------------------------------------- void SPI_Send(unsigned char cmd_dat, unsigned char value) { unsigned char i; CS=0; if(cmd_dat) SDI=1; else SDI=0; //DNC bit setting scl=0; _nop_(); _nop_(); scl=1; _nop_(); for(i=0; i<8; i++) { if(value&0x80) SDI=1; else SDI=0; scl=0; _nop_(); _nop_(); scl=1; _nop_(); value <<=1; } CS=1; }