我在调,可似乎没反应,下面是部分代码<br />int main (void) {<br /><br /> init_timer(); /* Initialize Timer */<br /> init_serial(); /* Initialize Serial Interface */<br /> printf ("Welcom to S3C44B0 DEMO Kit !
"); /* Print "Hello World !" */<br /> LED_Blink(3);<br /> init_lcd_interface( );<br /> HX8347_Init( );<br /> LCD_BlockWrite_HX8347(0,0,200,300,0x001f);<br /><br /><br /><br />#define UINT32 unsigned int<br />#define UINT16 unsigned short<br />// set interface GPIO mode :RESET, CS, RD, WR, A0, D0-D15<br />// RESET -> nGCS5 @GPIO mode<br />// LCD_CS -> EMI_nGCS4 @set mode to CS4 <br />// LCD_WR -> EMI_nWE @NC<br />// LCD_RD -> EMI_nOE @NC<br />// LCD_A0 -> EMI_ADDR1 @NC<br />// LCD_D0-D15 -> EMI_D0-D15 @NC <br /><br /><br />#define LCD_PARALLEL0_A0_LOW_ADDR 0x08000000<br />#define LCD_PARALLEL0_A0_HIGH_ADDR 0x08000002<br /><br />#define MAIN_LCD_CMD_ADDR LCD_PARALLEL0_A0_LOW_ADDR<br />#define MAIN_LCD_DATA_ADDR LCD_PARALLEL0_A0_HIGH_ADDR<br /><br />#define MAIN_LCD_16BIT_MODE<br /><br />#define MAIN_LCD_OUTPUT_FORMAT LCM_16BIT_16_BPP_RGB565_1<br /><br />void LCD_Delay(UINT32 delay_count)<br />{<br /> UINT32 delay;<br /> for (delay =0;delay <delay_count;delay++) {}<br />}<br /><br />extern void wait (unsigned long);<br />void Delay_ms(UINT32 data)<br />{<br /> wait(data);<br />}<br />//PB10<br />#define CLR_LCD_CTRL_RESET_PIN <br /> REG16(0x01D2000C) &= (~0x0001<<10)<br /><br />#define SET_LCD_CTRL_RESET_PIN <br /> REG16(0x01D2000C) |= (0x0001<<10)<br /><br />#if defined (MAIN_LCD_16BIT_MODE)<br />#define LCD_CtrlWrite_HX8347(_data) <br /> {<br /> REG16(MAIN_LCD_CMD_ADDR) = _data ;<br /> LCD_Delay(2);<br /> }<br /><br />#define LCD_DataWrite_HX8347(_data) <br /> {<br /> REG16(MAIN_LCD_DATA_ADDR) = _data ;<br /> LCD_Delay(2);<br /> }<br />#endif //#ifdef (MAIN_LCD_16BIT_MODE) <br /><br /><br />//*************************************************************************************//<br />// LCD DRIVER API<br />//*************************************************************************************//<br /><br /><br />void init_lcd_interface(void)<br />{<br />// set interface GPIO mode :RESET, CS, RD, WR, A0, D0-D15<br />// RESET -> nGCS5 @GPIO mode<br />// LCD_CS -> nGCS4 @set mode to CS4 <br />// LCD_WR -> EMI_nWE @NC<br />// LCD_RD -> EMI_nOE @NC<br />// LCD_A0 -> EMI_ADDR1 @NC<br />// LCD_D0-D15 -> EMI_D0-D15 @NC <br />// SET BANK4 to 16bits ROM mode, 0001<br /> REG32(0x01C80000) &= (0x000f0000); //mask bank4 setting<br /> REG32(0x01C80000) |= (0x00010000); //set to 16bits,no waiting ,not use UB/LB<br /><br />// set nGCS4,nGCS5<br /> REG16(0x01D20008) |= (0x0001<<9) ; //set GPB9 to nGCS4 mode<br /> REG16(0x01D20008) &= (~0x0001<<10) ; //set GPB10 to GPO mode<br /> SET_LCD_CTRL_RESET_PIN; //set GPB10 <br />//set timing ,0111 1111 1111 0100<br />// REG16(0x01C80014) =0x7FF4;<br /> <br />//reset LCD Moudle<br /> CLR_LCD_CTRL_RESET_PIN;<br /> Delay_ms(20);<br /> SET_LCD_CTRL_RESET_PIN;<br /> Delay_ms(400);<br />} /* init_lcd_interface() */<br /><br />void LCD_write_reg_HX8347(UINT16 reg_index, UINT16 reg_dat)<br />{<br /> LCD_CtrlWrite_HX8347(reg_index);<br /> LCD_DataWrite_HX8347(reg_dat);<br />}<br /><br />void HX8347_Init (void)<br />{<br /> //=========Initial HX8347 for INL2.8"QVGA Panel======//<br /> UINT16 LCDID,ii;<br /><br /> LCD_write_reg_HX8347(0x0042,0x0008); <br /> //Gamma setting <br /> LCD_write_reg_HX8347(0x0046,0x0033);<br /> LCD_write_reg_HX8347(0x0047,0x0033);<br /> LCD_write_reg_HX8347(0x0048,0x0033);<br /> LCD_write_reg_HX8347(0x0049,0x0067);<br /> LCD_write_reg_HX8347(0x004A,0x0015);<br /> LCD_write_reg_HX8347(0x004B,0x0026);<br /> LCD_write_reg_HX8347(0x004C,0x0001);<br /> LCD_write_reg_HX8347(0x004D,0x0044);<br /> LCD_write_reg_HX8347(0x004E,0x0005); <br /> LCD_write_reg_HX8347(0x004F,0x0010); <br /> LCD_write_reg_HX8347(0x0050,0x0008); <br /> LCD_write_reg_HX8347(0x0051,0x000a); <br /> <br /> //Window Setting<br /> <br /> LCD_write_reg_HX8347(0x0002,0x0000);<br /> LCD_write_reg_HX8347(0x0003,0x0000);<br /> LCD_write_reg_HX8347(0x0004,0x0000);<br /> LCD_write_reg_HX8347(0x0005,0x00EF);<br /> LCD_write_reg_HX8347(0x0006,0x0000);<br /> LCD_write_reg_HX8347(0x0007,0x0000);<br /> LCD_write_reg_HX8347(0x0008,0x0001);<br /> LCD_write_reg_HX8347(0x0009,0x003F);<br /> <br /> LCD_Delay(10);<br /> <br /> LCD_write_reg_HX8347(0x0001,0x0006);<br /> <br /> LCD_write_reg_HX8347(0x0016,0x00C8); <br /> LCD_write_reg_HX8347(0x0023,0x0095);<br /> LCD_write_reg_HX8347(0x0024,0x0095);<br /> LCD_write_reg_HX8347(0x0025,0x00FF);<br /> LCD_write_reg_HX8347(0x0027,0x0002);<br /> LCD_write_reg_HX8347(0x0028,0x0002);<br /> LCD_write_reg_HX8347(0x0029,0x0002);<br /> LCD_write_reg_HX8347(0x002A,0x0002);<br /> LCD_write_reg_HX8347(0x002C,0x0002);<br /> LCD_write_reg_HX8347(0x002D,0x0002);<br /> <br /> LCD_write_reg_HX8347(0x003A,0x0001); <br /> LCD_write_reg_HX8347(0x003B,0x0001); <br /> LCD_write_reg_HX8347(0x003C,0x00F0); <br /> LCD_write_reg_HX8347(0x003D,0x0000);<br /> <br /> LCD_Delay(20);<br /> <br /> LCD_write_reg_HX8347(0x0035,0x0038);<br /> LCD_write_reg_HX8347(0x0036,0x0078);<br /> LCD_write_reg_HX8347(0x003E,0x0038);<br /> LCD_write_reg_HX8347(0x0040,0x000F);<br /> LCD_write_reg_HX8347(0x0041,0x00F0); <br /> <br /> LCD_write_reg_HX8347(0x0038,0x0000);<br /> <br /> // Power Setting<br /> <br /> LCD_write_reg_HX8347(0x0019,0x0049); <br /> LCD_write_reg_HX8347(0x0093,0x000A);<br /> <br /> LCD_Delay(10);<br /> <br /> LCD_write_reg_HX8347(0x0020,0x0020); <br /> <br /> LCD_write_reg_HX8347(0x001D,0x0003); <br /> LCD_write_reg_HX8347(0x001E,0x0000); <br /> <br /> LCD_write_reg_HX8347(0x001F,0x0009); <br /> <br /> LCD_write_reg_HX8347(0x0044,0x0053); <br /> LCD_write_reg_HX8347(0x0045,0x0010); <br /> <br /> LCD_Delay(10); <br /> <br /> LCD_write_reg_HX8347(0x001C,0x0004); <br /> <br /> LCD_Delay(20);<br /> <br /> LCD_write_reg_HX8347(0x0043,0x0080); <br /> <br /> LCD_Delay(5);<br /> <br /> LCD_write_reg_HX8347(0x001B,0x000a); <br /> <br /> LCD_Delay(40); <br /> <br /> LCD_write_reg_HX8347(0x001B,0x0012); <br /> <br /> LCD_Delay(40); <br /> //Display On Setting<br /> <br /> LCD_write_reg_HX8347(0x0090,0x007F);<br /> LCD_write_reg_HX8347(0x0026,0x0004);<br /> <br /> LCD_Delay(40); <br /> <br /> LCD_write_reg_HX8347(0x0026,0x0024);<br /> LCD_write_reg_HX8347(0x0026,0x002C);<br /> <br /> LCD_Delay(40); <br /> LCD_write_reg_HX8347(0x0070,0x0008);<br /> LCD_write_reg_HX8347(0x0026,0x003C); <br /> LCD_write_reg_HX8347(0x0057,0x0002);<br /> LCD_write_reg_HX8347(0x0055,0x0000);<br /> LCD_write_reg_HX8347(0x0057,0x0000);<br /> LCD_CtrlWrite_HX8347(0x0000); <br /> LCDID=REG16(MAIN_LCD_DATA_ADDR);<br /> printf("reg%d = %x ----",ii,LCDID ); <br /> <br /> LCD_CtrlWrite_HX8347(0x0022); //??<br /> <br />}<br /><br />void LCD_BlockWrite_HX8347(UINT16 startx,UINT16 starty,UINT16 endx,UINT16 endy,UINT16 pdata)<br />{<br /> UINT32 aa,bb;<br /><br /> LCD_CtrlWrite_HX8347(0x0002);<br /> LCD_DataWrite_HX8347((startx>>8)&0xff);<br /> LCD_CtrlWrite_HX8347(0x0003);<br /> LCD_DataWrite_HX8347((startx&0xff));<br /> LCD_CtrlWrite_HX8347(0x0004);<br /> LCD_DataWrite_HX8347((endx>>8)&0xff);<br /> LCD_CtrlWrite_HX8347(0x0005);<br /> LCD_DataWrite_HX8347(endx&0xff);<br /> LCD_CtrlWrite_HX8347(0x0006);<br /> LCD_DataWrite_HX8347((starty>>8)&0xff);<br /> LCD_CtrlWrite_HX8347(0x0007);<br /> LCD_DataWrite_HX8347(starty&0xff);<br /> LCD_CtrlWrite_HX8347(0x0008);<br /> LCD_DataWrite_HX8347((endy>>8)&0xff);<br /> LCD_CtrlWrite_HX8347(0x0009);<br /> LCD_DataWrite_HX8347(endy&0xff);<br /> LCD_CtrlWrite_HX8347(0x0016);<br /> LCD_DataWrite_HX8347(0x00C8);<br /> LCD_CtrlWrite_HX8347(0x0022);<br /><br /> for(aa=startx;aa<endx;aa++)<br /> {<br /> for(bb=starty;bb<endy;bb++)<br /> {<br /> //LCD_DataWrite_TA7601(*pdata);<br /> LCD_DataWrite_HX8347(pdata);<br /> //pdata++;<br /> }<br /> }<br />}<br /><br />void SetBrightLevel_HX8347(UINT32 level)<br />{<br />/*you can use PWM to control backlight level*/<br /><br />}<br /> |
|