?? lcd.c
字號:
}
#endif
for (LCD_y = y1; LCD_y <= y2; LCD_y++)
{
for (LCD_x = x1; LCD_x <= x2; LCD_x++)
{
#if (defined(LCD_8BIT_MODE))
*((volatile unsigned char *) LCD_HX8306A_DATA_ADDR) = (kal_uint8)(data >> 8);
*((volatile unsigned char *) LCD_HX8306A_DATA_ADDR) = (kal_uint8)(data & 0x00FF);
#elif (defined(LCD_16BIT_MODE))
*((volatile unsigned short *) LCD_HX8306A_DATA_ADDR) = data;
#elif (defined(LCD_18BIT_MODE))
*((volatile unsigned int *) LCD_HX8306A_DATA_ADDR)=(r_color<<12)|(g_color<<6)|b_color;
#elif (defined(LCD_9BIT_MODE))
*((volatile unsigned short *) LCD_HX8306A_DATA_ADDR)=(r_color<<6)|(g_color>>3);
*((volatile unsigned short *) LCD_HX8306A_DATA_ADDR)=((g_color&0x07)<<6)|b_color;
#endif
}
}
}
void LCD_ClearAll_HX8306A(kal_uint16 data)
{
LCD_blockClear_HX8306A(0, 0, LCD_WIDTH - 1, LCD_HEIGHT - 1, data);
}
void LCD_Init_HX8306A(kal_uint32 bkground, void **buf_addr)
{
CLEAR_LCD_CTRL_RESET_PIN;
DELAY_1ms(3);//Delayms(10);
SET_LCD_CTRL_RESET_PIN;
DELAY_1ms(3);//Delayms(10);
lcd_check = 0;
#ifdef LCM_LEAD_L1E2_176x220
{
LCD_CtrlWrite_HX8306A(0x11);
DELAY_1ms(20); //Delay(120);
LCD_CtrlWrite_HX8306A(0xc5);
LCD_DataWrite_HX8306A(0x53);
LCD_DataWrite_HX8306A(0x0c);
LCD_CtrlWrite_HX8306A(0xe7);
LCD_DataWrite_HX8306A(0x7e);
///////////GAMMA SET////////////
LCD_CtrlWrite_HX8306A(0xAA);
LCD_CtrlWrite_HX8306A(0xC0);
LCD_DataWrite_HX8306A(0x0C);
LCD_CtrlWrite_HX8306A(0xE6);
LCD_DataWrite_HX8306A(0x01);
LCD_CtrlWrite_HX8306A(0xE2);
LCD_DataWrite_HX8306A(0x17);
LCD_DataWrite_HX8306A(0x0F);
LCD_DataWrite_HX8306A(0x0D);
LCD_DataWrite_HX8306A(0x0D);
LCD_DataWrite_HX8306A(0x09);
LCD_DataWrite_HX8306A(0x0B);
LCD_DataWrite_HX8306A(0x0A);
LCD_DataWrite_HX8306A(0x0E);
LCD_DataWrite_HX8306A(0x09);
LCD_DataWrite_HX8306A(0x17);
LCD_DataWrite_HX8306A(0x0E);
LCD_DataWrite_HX8306A(0x0B);
LCD_DataWrite_HX8306A(0x06);
LCD_DataWrite_HX8306A(0x06);
LCD_DataWrite_HX8306A(0x16);
LCD_DataWrite_HX8306A(0x6E);
LCD_DataWrite_HX8306A(0x74);
LCD_CtrlWrite_HX8306A(0xE3);
LCD_DataWrite_HX8306A(0x15);
LCD_DataWrite_HX8306A(0x11);
LCD_DataWrite_HX8306A(0x13);
LCD_DataWrite_HX8306A(0x17);
LCD_DataWrite_HX8306A(0x14);
LCD_DataWrite_HX8306A(0x13);
LCD_DataWrite_HX8306A(0x0F);
LCD_DataWrite_HX8306A(0x10);
LCD_DataWrite_HX8306A(0x09);
LCD_DataWrite_HX8306A(0x03);
LCD_DataWrite_HX8306A(0x12);
LCD_DataWrite_HX8306A(0x0F);
LCD_DataWrite_HX8306A(0x0B);
LCD_DataWrite_HX8306A(0x0A);
LCD_DataWrite_HX8306A(0x03);
LCD_DataWrite_HX8306A(0x49);
LCD_DataWrite_HX8306A(0x4F);
LCD_CtrlWrite_HX8306A(0x35);
LCD_DataWrite_HX8306A(0x01);
///////////DISPLAY SET////////////
LCD_CtrlWrite_HX8306A(0x3A);
LCD_DataWrite_HX8306A(0x05); //8BIT,2-transferR-G-B
LCD_CtrlWrite_HX8306A(0x29);
LCD_CtrlWrite_HX8306A(0x13); // Normal Display Mode On janing xu
}
#elif defined LCM_LEAD_R61503_176x220
{
#if 1
LCD_set_reg(0x0000,0x0001);
DELAY_1ms(5);//LCD_Delay(20);
LCD_set_reg(0x0007,0x0000);
DELAY_1ms(5);
LCD_set_reg(0x0012,0x0000);
DELAY_1ms(3);
LCD_set_reg(0x00A4,0x0001);
DELAY_1ms(6);
LCD_set_reg(0x0070,0x1b00);
LCD_set_reg(0x0008,0x0202);
/************* Gamma ***************** */
LCD_set_reg(0x0030,0x0601);
LCD_set_reg(0x0031,0x0507);
LCD_set_reg(0x0032,0x0006);
LCD_set_reg(0x0033,0x0701);
LCD_set_reg(0x0034,0x0105);
LCD_set_reg(0x0035,0x0004);
LCD_set_reg(0x0036,0x0605);
LCD_set_reg(0x0037,0x0002);
LCD_set_reg(0x0038,0x1c00);
LCD_set_reg(0x0039,0x0500);
LCD_set_reg(0x003a,0x0100);
DELAY_1ms(1);
/************* Gamma End ***************** */
LCD_set_reg(0x0014,0x8000);
DELAY_1ms(7);//LCD_Delay(30);
LCD_set_reg(0x0001,0x0100);
LCD_set_reg(0x0002,0x0400);
LCD_set_reg(0x0003,0x1030); //HWM=1 0x1030 //ss.pan 2007.11.27 modify
LCD_set_reg(0x0070,0x1b00);
LCD_set_reg(0x0071,0x0001);
LCD_set_reg(0x0090,0x0000);
LCD_set_reg(0x0091,0x0000);
LCD_set_reg(0x0092,0x0001);
LCD_set_reg(0x0098,0x0002);
LCD_set_reg(0x0099,0x060e);
LCD_set_reg(0x009a,0x060e);
LCD_set_reg(0x0050,0x0000);
LCD_set_reg(0x0051,0x00af);
LCD_set_reg(0x0052,0x0000);
LCD_set_reg(0x0053,0x00db);
LCD_set_reg(0x0020,0x0000);
LCD_set_reg(0x0021,0x0000);
LCD_set_reg(0x0007,0x0001);
LCD_set_reg(0x0018,0x0001);
LCD_set_reg(0x0010,0x11b0);
LCD_set_reg(0x0011,0x0001);
DELAY_1ms(7);
LCD_set_reg(0x0012,0x1111);
DELAY_1ms(5);
LCD_set_reg(0x0013,0x830c);
LCD_set_reg(0x0012,0x1131);
LCD_set_reg(0x0007, 0x0001);
DELAY_1ms(5);
LCD_set_reg(0x0007,0x0021);
DELAY_1ms(5);
LCD_set_reg(0x0007,0x0233);
#else //lead對初始化代碼作了更新
LCD_set_reg(0x0000,0x0000);
LCD_set_reg(0x0000,0x0000);
LCD_set_reg(0x0000,0x0000);
LCD_set_reg(0x0000,0x0000);
LCD_set_reg(0x0000,0x0000);
LCD_set_reg(0x00A4,0x0001);
kal_sleep_task(5);
LCD_set_reg(0x0007,0x0001);
LCD_set_reg(0x0018,0x0001);
LCD_set_reg(0x0010,0x11B0);
LCD_set_reg(0x0011,0x0110);
LCD_set_reg(0x0012,0x0036);
LCD_set_reg(0x0013,0x850C);
LCD_set_reg(0x0012,0x0036);
LCD_set_reg(0x0014,0x8000);
LCD_set_reg(0x0001,0x0100);
LCD_set_reg(0x0002,0x0700);
LCD_set_reg(0x0003,0x1030); //cancel high speed transfer
LCD_set_reg(0x0008,0x0808);
LCD_set_reg(0x0009,0x0000);
LCD_set_reg(0x000C,0x0000);
LCD_set_reg(0x000F,0x0000);
LCD_set_reg(0x0020,0x0000);
LCD_set_reg(0x0021,0x0000);
LCD_set_reg(0x0030,0x0305);
LCD_set_reg(0x0031,0x0002);
LCD_set_reg(0x0032,0x0100);
LCD_set_reg(0x0033,0x0102);
LCD_set_reg(0x0034,0x0706);
LCD_set_reg(0x0035,0x0606);
LCD_set_reg(0x0036,0x0304);
LCD_set_reg(0x0037,0x0200);
LCD_set_reg(0x0038,0x0000);
LCD_set_reg(0x0039,0x001F);
LCD_set_reg(0x003A,0x0000);
LCD_set_reg(0x0020,0x0000);
LCD_set_reg(0x0021,0x0000);
LCD_set_reg(0x0050,0x0000);
LCD_set_reg(0x0051,0x00AF);
LCD_set_reg(0x0052,0x0000);
LCD_set_reg(0x0053,0x00DB);
LCD_set_reg(0x0070,0x1B00);
LCD_set_reg(0x0071,0x0001);
LCD_set_reg(0x007A,0x0000);
LCD_set_reg(0x0085,0x0000);
LCD_set_reg(0x0090,0x0008);
LCD_set_reg(0x0091,0x0100);
LCD_set_reg(0x0092,0x0001);
LCD_set_reg(0x0007,0x0001);
kal_sleep_task(15);
LCD_set_reg(0x0007,0x0021);
kal_sleep_task(15);
LCD_set_reg(0x0012,0x1138);
kal_sleep_task(15);
LCD_set_reg(0x0007,0x0233);
#endif
} /*--end LCM_LEAD_R61503_176x220 --*/
#elif defined(LCM_LEAD_ILI9221_176x220)
{
LCD_CtrlWrite_HX8306A(0x00); // start internal OSC
LCD_CtrlWrite_HX8306A(0x00);
LCD_DataWrite_HX8306A(0x00);
LCD_DataWrite_HX8306A(0x01);
LCD_CtrlWrite_HX8306A(0x00); // set the display line number and display direction
LCD_CtrlWrite_HX8306A(0x01);
LCD_DataWrite_HX8306A(0x01);
LCD_DataWrite_HX8306A(0x1B);
LCD_CtrlWrite_HX8306A(0x00); //SET 1 Line inversion
LCD_CtrlWrite_HX8306A(0x02);
LCD_DataWrite_HX8306A(0x05);
LCD_DataWrite_HX8306A(0x00);
LCD_CtrlWrite_HX8306A(0x00); //set gram write direction and BGR=1;
LCD_CtrlWrite_HX8306A(0x03);
LCD_DataWrite_HX8306A(0x10);
LCD_DataWrite_HX8306A(0x30);
LCD_CtrlWrite_HX8306A(0x00); //set mask bit
LCD_CtrlWrite_HX8306A(0x04);
LCD_DataWrite_HX8306A(0x00);
LCD_DataWrite_HX8306A(0x00);
LCD_CtrlWrite_HX8306A(0x00); //set mask bit
LCD_CtrlWrite_HX8306A(0x05);
LCD_DataWrite_HX8306A(0x00);
LCD_DataWrite_HX8306A(0x00);
LCD_CtrlWrite_HX8306A(0x00); //display off
LCD_CtrlWrite_HX8306A(0x07);
LCD_DataWrite_HX8306A(0x00);
LCD_DataWrite_HX8306A(0x00);
LCD_CtrlWrite_HX8306A(0x00); //set the back porch and Front porch
LCD_CtrlWrite_HX8306A(0x08);
LCD_DataWrite_HX8306A(0x02);
LCD_DataWrite_HX8306A(0x02);
LCD_CtrlWrite_HX8306A(0x00); //display control 3
LCD_CtrlWrite_HX8306A(0x09);
LCD_DataWrite_HX8306A(0x00);
LCD_DataWrite_HX8306A(0x00);
LCD_CtrlWrite_HX8306A(0x00); //set clocks number per line
LCD_CtrlWrite_HX8306A(0x0B);
LCD_DataWrite_HX8306A(0x00);
LCD_DataWrite_HX8306A(0x00);
LCD_CtrlWrite_HX8306A(0x00); //CPU INTERFACE
LCD_CtrlWrite_HX8306A(0x0C);
LCD_DataWrite_HX8306A(0x00);
LCD_DataWrite_HX8306A(0x00);
//POWER SET
LCD_CtrlWrite_HX8306A(0x00); //SET vgh/vgl,turn off the charge-bump circuit
LCD_CtrlWrite_HX8306A(0x10);
LCD_DataWrite_HX8306A(0x00);
LCD_DataWrite_HX8306A(0x00);
DELAY_1ms(3); // Delayms(10);
LCD_CtrlWrite_HX8306A(0x00); //SET the frequency of charge-pump circuit and reference voltage
LCD_CtrlWrite_HX8306A(0x11);
LCD_DataWrite_HX8306A(0x00);
LCD_DataWrite_HX8306A(0x00);
LCD_CtrlWrite_HX8306A(0x00);//SET REFERENCE VOLTAGE OF GAMMA CIRCUIT
LCD_CtrlWrite_HX8306A(0x12);
LCD_DataWrite_HX8306A(0x00);
LCD_DataWrite_HX8306A(0x00);
DELAY_1ms(9); // Delayms(40);
LCD_CtrlWrite_HX8306A(0x00);//SET VCOMH/VCOML
LCD_CtrlWrite_HX8306A(0x13);
LCD_DataWrite_HX8306A(0x00);
LCD_DataWrite_HX8306A(0x00);
DELAY_1ms(9); // Delayms(40);
LCD_CtrlWrite_HX8306A(0x00);//SET VCOMH/VCOML
LCD_CtrlWrite_HX8306A(0x56);
LCD_DataWrite_HX8306A(0x08);
LCD_DataWrite_HX8306A(0x0F);
DELAY_1ms(9); // Delayms(40);
LCD_CtrlWrite_HX8306A(0x00);//SET vgh/vgl,turn off the charge-bump circuit
LCD_CtrlWrite_HX8306A(0x10);
LCD_DataWrite_HX8306A(0x42);
LCD_DataWrite_HX8306A(0x40);
DELAY_1ms(9); // Delayms(10);
LCD_CtrlWrite_HX8306A(0x00);//SET the frequency of charge-pump circuit and reference voltage
LCD_CtrlWrite_HX8306A(0x11);
LCD_DataWrite_HX8306A(0x00);
LCD_DataWrite_HX8306A(0x00);
LCD_CtrlWrite_HX8306A(0x00);//SET REFERENCE VOLTAGE OF GAMMA CIRCUIT
LCD_CtrlWrite_HX8306A(0x12);
LCD_DataWrite_HX8306A(0x00);
LCD_DataWrite_HX8306A(0x14);
DELAY_1ms(9); //Delayms(40);
LCD_CtrlWrite_HX8306A(0x00);//SET VCOMH/VCOML
LCD_CtrlWrite_HX8306A(0x13);
LCD_DataWrite_HX8306A(0x13);
LCD_DataWrite_HX8306A(0x19);
DELAY_1ms(9); // Delayms(40);
LCD_CtrlWrite_HX8306A(0x00);//SET VCOMH/VCOML
LCD_CtrlWrite_HX8306A(0x13);
LCD_DataWrite_HX8306A(0x33);
LCD_DataWrite_HX8306A(0x19);
DELAY_1ms(9); // Delayms(40);
//GAMMA 2.2 CURVE
LCD_CtrlWrite_HX8306A(0x00);// start internal OSC
LCD_CtrlWrite_HX8306A(0x30);
LCD_DataWrite_HX8306A(0x03);
LCD_DataWrite_HX8306A(0x02);
LCD_CtrlWrite_HX8306A(0x00);// set the display line number and display direction
LCD_CtrlWrite_HX8306A(0x31);
LCD_DataWrite_HX8306A(0x04);
LCD_DataWrite_HX8306A(0x07);
LCD_CtrlWrite_HX8306A(0x00);//SET 1 Line inversion
LCD_CtrlWrite_HX8306A(0x32);
LCD_DataWrite_HX8306A(0x03);
LCD_DataWrite_HX8306A(0x04);
LCD_CtrlWrite_HX8306A(0x00);//set gram write direction and BGR=1;
LCD_CtrlWrite_HX8306A(0x33);
LCD_DataWrite_HX8306A(0x02);
LCD_DataWrite_HX8306A(0x03);
LCD_CtrlWrite_HX8306A(0x00);
LCD_CtrlWrite_HX8306A(0x34);
LCD_DataWrite_HX8306A(0x07);
LCD_DataWrite_HX8306A(0x06);
LCD_CtrlWrite_HX8306A(0x00);
LCD_CtrlWrite_HX8306A(0x35);
LCD_DataWrite_HX8306A(0x04);
LCD_DataWrite_HX8306A(0x07);
LCD_CtrlWrite_HX8306A(0x00);
LCD_CtrlWrite_HX8306A(0x36);
LCD_DataWrite_HX8306A(0x07);
LCD_DataWrite_HX8306A(0x06);
LCD_CtrlWrite_HX8306A(0x00);
LCD_CtrlWrite_HX8306A(0x37);
LCD_DataWrite_HX8306A(0x00);
LCD_DataWrite_HX8306A(0x00);
LCD_CtrlWrite_HX8306A(0x00);
LCD_CtrlWrite_HX8306A(0x38);
LCD_DataWrite_HX8306A(0x0C);
LCD_DataWrite_HX8306A(0x06);
LCD_CtrlWrite_HX8306A(0x00);
LCD_CtrlWrite_HX8306A(0x39);
LCD_DataWrite_HX8306A(0x0F);
LCD_DataWrite_HX8306A(0x00);
//DISPLAY ON
LCD_CtrlWrite_HX8306A(0x00);
LCD_CtrlWrite_HX8306A(0x40);
LCD_DataWrite_HX8306A(0x00);
LCD_DataWrite_HX8306A(0x00);
LCD_CtrlWrite_HX8306A(0x00);
LCD_CtrlWrite_HX8306A(0x41);
LCD_DataWrite_HX8306A(0x00);
LCD_DataWrite_HX8306A(0x00);
LCD_CtrlWrite_HX8306A(0x00);
LCD_CtrlWrite_HX8306A(0x07);
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -