예제 #1
0
int lcd_standby(u8 enable)
{
	if(enable) {
	    if(gLcd_info)
	        gLcd_info->io_init();
		printk("lcd_standby...\n");
		Write_ADDR(0x0028);     //set Display Off
		Write_ADDR(0x0010);		//enter sleep mode
		msleep(50);			//wait at least 3 frames time
#if 1
		Write_ADDR(0x00b0);
		Write_DATA(0x0004);
		Write_ADDR(0x00b1);
		Write_DATA(0x0001);
		msleep(1);				//wait at least 1ms
		gpio_direction_output(LCD_RST_PORT, 0);
#endif

	    if(gLcd_info)
	        gLcd_info->io_deinit();

	} else {
		lcd_init();
	}

    return 0;
}
예제 #2
0
void Tm1638_Test(void)
{
	unsigned char i,j;

	u8 tmp_fcs=0,tmp_len,tmp, keyDat ,t_kdat ,temp_keydat;
	
	for(i=0;i<16;i++)
	{
	  for(j=0;j<4;j++)
	  Write_DATA(j<<1,tab[i]); 
	  delay_ms(200);
	}

	for(i=0;i<16;i++)
	{ 
		i++;
		Write_oneLED(i,1);//i是第几个LED,j是LED的状态
	  delay_ms(200);
	}
}
예제 #3
0
int lcd_init(void)
{
    if(gLcd_info)
        gLcd_info->io_init();

    printk("lcd hj050a_06a...\n");
#if 1
	gpio_direction_output(LCD_RST_PORT, 0);
	usleep_range(2*1000, 3*1000);
	gpio_set_value(LCD_RST_PORT, 1);
	usleep_range(7*1000, 7*1000);
#endif

    Write_ADDR(0x0001);     // Software Reset
    msleep(10);

    Write_ADDR(0x0011);     // Sleep Out
    msleep(60);

//<<<<<<<<<<<<<<<MANUFACTURE COMMAND ACCESS PROTECT>>>>>>>>>>>>>>>
    Write_ADDR(0x00B0);     //Manufacture Command Access Protect
    Write_DATA(0x0004);

//<<<<<<<<<<<<Source Output Number>>>>>>>>>>>>>
    Write_ADDR(0x00B3);     //Number of Source outputs & Pixel Format setting
    Write_DATA(0x0000);     //PSEL[2:0] = 640 RGB

//<<<<<<<<<<<<DSI Control>>>>>>>>>>>>>>>>>
    Write_ADDR(0x00B6);
    Write_DATA(0x0052);
    Write_DATA(0x0083);
    Write_DATA(0x0045);
    Write_DATA(0x0000);

//<<<<<<<<<<<<BACK LIGHT CONTROL SET>>>>>>>>>>>>
    Write_ADDR(0x00B8);     //Back Light Control(1)
    Write_DATA(0x0000);     //P1: CABCON = 0;
    Write_DATA(0x001A);     //P2: SSD_THRE = 1A;
    Write_DATA(0x0018);     //P3: SD_THRE = 18;
    Write_DATA(0x0002);     //P4: IPK_INTPO = 02;
    Write_DATA(0x0040);     //P5: IPK_TRANS = 40;

    Write_ADDR(0x00BB);     //Back Light Control(1)
    Write_DATA(0x0000);     //LEDPWME[3] = 1,PWMWM[1] = 0,PWMON[0] = 0;
    Write_DATA(0x00FF);     //BDCV = FF;
    Write_DATA(0x0001);     //PWMDIC=1

//<<<<<<<<<<<<PANEL DRIVING SETTING>>>>>>>>>>>>
    Write_ADDR(0x00C0);     //PANEL DRIVING SETTING 1   (36h=00)
    Write_DATA(0x000B);     //BLREV[5:4];REV[3];UD[2]=0:forward;BGR[1]=1:RGB->BGR;SS=1:S1920->S1
    Write_DATA(0x00BF);     //NL[7:0]      NL = 3BF : 960 Line
    Write_DATA(0x0003);     //NL[10:8]
    Write_DATA(0x0011);     //VBP[5:0]  Vertical back porch
    Write_DATA(0x0002);     //DIV[3:0]
    Write_DATA(0x0009);     //PCDIVL[4:0]   PCLKD Low Period
    Write_DATA(0x0009);     //PCDIVH[4:0]   PCLKD High Period

    Write_ADDR(0x00C1);     //PANEL DRIVING SETTING 2
    Write_DATA(0x0000);     //GDS_MODE = 0 : GIP Ctrl(single scan)
    Write_DATA(0x0010);     //LINEINV[6:4]:2 Line inversion; MFPOL[1]:No Phase inversion; PNSER[0]:Spatial mode1
    Write_DATA(0x0004);     //SEQMODE[7]:Source Pre-charge Mode;    SEQGND[3:0]: GND Pre-charge 3clk
    Write_DATA(0x0088);     //SEQVN[7:4]:VCL pre-charge 2clk   ;SEQVP[3:0]:VCL pre-charge 2clk
    Write_DATA(0x001B);     //DPM[7:6]: ;GEQ2W[5:3]/GEQ1W[2:0]:Gate pre-charge
    Write_DATA(0x0001);     //SDT[5:0] = 8 : Source output delay
    Write_DATA(0x0060);     //PSEUDO_EN = 0;
    Write_DATA(0x0001);     //GEM

    Write_ADDR(0x00C3);     //PANEL DRIVING SETTING 4
    Write_DATA(0x0000);     //GIPPAT[6:4]:Pattern-1 ; GIPMOD[2:0]: GIP mode 1
    Write_DATA(0x0000);     //STPEOFF:normal  ;   FWBWOFF:normal    ;   T_GALH:normal
    Write_DATA(0x0021);     //GSPF[5:0]:    33clk
    Write_DATA(0x0021);     //GSPS[5:0]:    33clk
    Write_DATA(0x0000);     //VFSTEN[7]: NO END Pulse ; VFST[4:0]: 0 line
    Write_DATA(0x0060);     //FL1[6]:   ; GLOL[5:4]:    ; VGSET[3]:  ; GIPSIDE=0:Single drive mode ; GOVERSEL=0:Overlap ; GIPSEL=0:8-phase clk
    Write_DATA(0x0003);     //VBPEX[6]: ; STVG[5:3]:    ; STVGA[2:0]:
    Write_DATA(0x0000);     //ACBF[7:6]:    ; ACF[5:4]: ; ACBR[3:2]:    ; ACR[1:0]:
    Write_DATA(0x0000);     //ACBF2[7:6]:   ; ACF2[5:4]:    ; ACBR2[3:2]:    ; ACR2[1:0]:
    Write_DATA(0x0090);     //9xH  ACCYC[3:2]:  ; ACFIX[1;0]:
    Write_DATA(0x001D);     //GOFF_L[7:0]
    Write_DATA(0x00FE);     //GOFF_L[15:8]
    Write_DATA(0x0003);     //GOFF_L[17:16]
    Write_DATA(0x001D);     //GOFF_R[7:0]
    Write_DATA(0x00FE);     //GOFF_R[15:8]
    Write_DATA(0x0003);     //GOFF_R[17:16]

//<<<<<<<<<<TCON Unusual Operation Setting>>>>>>>>>>
    Write_ADDR(0x00C7);     //TCON Unusual Operation Setting
    Write_DATA(0x0000);     //P1:
    Write_DATA(0x0000);     //P2:
    Write_DATA(0x0000);     //P3:
    Write_DATA(0x0000);     //P4:
    Write_DATA(0x0000);     //P5:
    Write_DATA(0x0000);     //P6:
    Write_DATA(0x0000);     //P7:
    Write_DATA(0x0000);     //P8:
    Write_DATA(0x0000);     //P9:
    Write_DATA(0x0000);     //P10:
    Write_DATA(0x0000);     //P11:
    Write_DATA(0x0000);     //P12:
    Write_DATA(0x0000);     //P13:
    Write_DATA(0x0000);     //P14:

//<<<<<<<<<<Gamma Setting>>>>>>>>>>
    Write_ADDR(0x00C8);     //Gamma Setting
    Write_DATA(0x0003);
    Write_DATA(0x000F);
    Write_DATA(0x0015);
    Write_DATA(0x0018);
    Write_DATA(0x001A);
    Write_DATA(0x0023);
    Write_DATA(0x0025);
    Write_DATA(0x0024);
    Write_DATA(0x0021);
    Write_DATA(0x001E);
    Write_DATA(0x0015);
    Write_DATA(0x000A);

    Write_DATA(0x0003);
    Write_DATA(0x000F);
    Write_DATA(0x0015);
    Write_DATA(0x0018);
    Write_DATA(0x001A);
    Write_DATA(0x0023);
    Write_DATA(0x0025);
    Write_DATA(0x0024);
    Write_DATA(0x0021);
    Write_DATA(0x001E);
    Write_DATA(0x0015);
    Write_DATA(0x000A);

//<<<<<<<<<<COLOR ENHANCEMENT SETTING>>>>>>>>>>
    Write_ADDR(0x00C9);     //COLOR ENHANCEMENT SETTING
    Write_DATA(0x0000);     //CE_ON = 0;
    Write_DATA(0x0080);
    Write_DATA(0x0080);
    Write_DATA(0x0080);
    Write_DATA(0x0080);
    Write_DATA(0x0080);
    Write_DATA(0x0080);
    Write_DATA(0x0080);
    Write_DATA(0x0080);
    Write_DATA(0x0000);
    Write_DATA(0x0000);
    Write_DATA(0x0002);
    Write_DATA(0x0080);

//<<<<<<<<<<<<<<<<<<<<POWER SETTING>>>>>>>>>>>>>>>>>>>
    Write_ADDR(0x00D0);     //POWER SETTING(CHARGE PUMP)
    Write_DATA(0x0054);     //P1:VC1 = 7; DC23 = 4
    Write_DATA(0x0019);     //P2:BT3 = 2; BT2 = 1           09
    Write_DATA(0x00DD);     //P3:VLMT1M = D; VLMT1 = D
    Write_DATA(0x0016);     //P4:VC3 = B; VC2 =B            3B
    Write_DATA(0x0092);     //P5:VLMT2B = 0; VLMT2 = 0A
    Write_DATA(0x00A1);     //P6:VLMT3B = 0; VLMT3 = 0F   A1
    Write_DATA(0x0000);     //P7:VBSON = 0; VBS = 00
    Write_DATA(0x00C0);     //P8:VGGON = 0; LVGLON = 0; VC6 = 0
    Write_DATA(0x00CC);     //P9:DC56 = ?

    Write_ADDR(0x00D1);     //POWER SETTING(SWITCHING REGULATOR)
    Write_DATA(0x004D);     //P1:VDF1 = 4; VDF0 = D
    Write_DATA(0x0024);     //P2:DC1CLKEN = 0; DC1MCLKEN = 0; VDF2 =4
    Write_DATA(0x0034);     //P3:VDWS2 = 3; VDWS1 = 4
    Write_DATA(0x0055);     //P4:VDW12 = 5; VDW11 = 5
    Write_DATA(0x0055);     //P5:VDW14 = 5; VDW13 = 5
    Write_DATA(0x0077);     //P6:VDW22 = 7; VDW21 = 7
    Write_DATA(0x0077);     //P7:VDW24 = 7; VDW23 = 7
    Write_DATA(0x0006);     //P8:LSWPH = 6

//<<<<<<<<<<<<<<<VPLVL/VNLVL SETTING>>>>>>>>>>>>>>>
    Write_ADDR(0x00D5);     //VPLVL/VNLVL SETTING
    Write_DATA(0x0020);     //P1:PVH = 24
    Write_DATA(0x0020);     //P2:NVH = 24

//<<<<<<<<<<<<<<<DSI Setting>>>>>>>>>>>>>>>>
    Write_ADDR(0x00D6);
    Write_DATA(0x00A8);

//<<<<<<<<<<<<<<<VCOMDC SETTING>>>>>>>>>>>>>>>
    Write_ADDR(0x00DE);     //VCOMDC SETTING
    Write_DATA(0x0003);     //P1:WCVDCB.[1] = 1; WCVDCF.[0] = 1
    Write_DATA(0x005A);     //P2:VDCF.[7:0] = ?     //57
    Write_DATA(0x005A);     //P3:VDCB.[7:0] = ?     //57


//<<<<<<<<<<<<<<<MANUFACTURE COMMAND ACCESS PROTECT>>>>>>>>>>>>>>>
    Write_ADDR(0x00B0);     //MANUFACTURE COMMAND ACCESS PROTECT
    Write_DATA(0x0003);     //
    msleep(17);

    Write_ADDR(0x0036);     //
    Write_DATA(0x0000);     //
    msleep(17);
    Write_ADDR(0x003A);     //
    Write_DATA(0x0060);     //
    msleep(17);
    Write_ADDR(0x0029);     //

    if(gLcd_info)
        gLcd_info->io_deinit();

    return 0;

}
예제 #4
0
void LED8_Display(unsigned char add,unsigned char DATA)
	{
		Write_DATA(add<<1,tab[DATA]);
	}
예제 #5
0
void Write_oneLED(unsigned char num,unsigned char flag)	//单独控制一个LED函数,num为需要控制的led序号,flag为0时熄灭,不为0时点亮
{
	Write_DATA(num,flag);
}