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; }
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); } }
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; }
void LED8_Display(unsigned char add,unsigned char DATA) { Write_DATA(add<<1,tab[DATA]); }
void Write_oneLED(unsigned char num,unsigned char flag) //单独控制一个LED函数,num为需要控制的led序号,flag为0时熄灭,不为0时点亮 { Write_DATA(num,flag); }