eboot中的main.c中的InitLDI_LTV350和Write_LDI_LTV350起什么作用的?

穆特兰舍   2008-11-26 18:47 楼主
SMDK2450 FMD版的:

InitDisplay里的代码:

  1. #elif (BSP_TYPE == BSP_SMDK2450)
  2. void Delay(void)
  3. {
  4.     volatile int i;

  5.     for(i=0 ; i < 1000 ; i++)
  6.     {
  7.     }
  8. }
  9. static void InitDisplay(void)
  10. {
  11.         UINT8 pagewidth_in_byte=0,offsize_in_byte=0;       
  12.         volatile S3C2450_IOPORT_REG *s2450IOP = (S3C2450_IOPORT_REG *)OALPAtoVA(S3C2450_BASE_REG_PA_IOPORT, FALSE);
  13.         volatile S3C2450_LCD_REG    *s2450LCD = (S3C2450_LCD_REG *)OALPAtoVA(S3C2450_BASE_REG_PA_LCD, FALSE);
  14.         volatile S3C2450_INTR_REG        *s2450INTR = (S3C2450_INTR_REG *)OALPAtoVA(S3C2450_BASE_REG_PA_INTR, FALSE);
  15.         UINT8 clkval=0;
  16.         UINT16 hsync_cnt,vclk_cnt;
  17.         UINT16 lcd_horizon_value,lcd_line_value;
  18.         UINT8 lcd_vbpd,lcd_vfpd,lcd_vspw,lcd_hbpd,lcd_hfpd,lcd_hspw;
  19.         UINT8 lcd_frame_rate;       
  20.         int i;
  21.         unsigned short *pFB;

  22.        

  23.         // Set up the LCD controller registers to display a power-on bitmap image.
  24.         //
  25.         s2450IOP->MISCCR |= (1<<28);  // select LCD controller for TFT lcd controller
  26.        
  27.        
  28.         s2450IOP->GPCUDP     = 0xFFFFFFFF;
  29.         s2450IOP->GPCCON    = 0xAAAAAAAA;
  30.                                     
  31.         s2450IOP->GPDUDP     = 0xFFFFFFFF;
  32.         s2450IOP->GPDCON    = 0xAAAAAAAA;


  33.         s2450IOP->GPLCON = s2450IOP->GPLCON & ~(0x3ff<<20) | (0x1<< 28) | (0x1<< 26) | (0x1<< 24) | (0x1<< 22) | (0x1<< 20);
  34.         s2450IOP->GPLDAT |= (0x1f<<10);
  35.        

  36.         s2450IOP->GPBUDP &= ~0x3;
  37.         s2450IOP->GPBCON = (s2450IOP->GPBCON & ~((3<<6)|(3<<2)|(3<<0))) | ((1<<6)|(1<<2)|(1<<0)); // Backlight Pwm control
  38.         s2450IOP->GPBDAT  |=((1<<0) |(1<<3));

  39.         s2450IOP->GPBDAT &= ~(1<<1);

  40. #if (LCD_MODULE_TYPE == LCD_MODULE_LTE480WV)
  41. //                        s2450IOP->GPFCON = (s2450IOP->GPFCON & ~(3<<4)) |(1<<4);
  42. //                        s2450IOP->GPFDAT = (s2450IOP->GPFDAT & ~(1<<2)); // make low
  43.                         lcd_horizon_value = LTE480_HOZVAL;
  44.                         lcd_line_value = LTE480_LINEVAL;
  45.                         lcd_vbpd = LTE480_VBPD;
  46.                         lcd_vfpd = LTE480_VFPD;
  47.                         lcd_vspw = LTE480_VSPW;
  48.                         lcd_hbpd = LTE480_HBPD;
  49.                         lcd_hfpd = LTE480_HFPD;
  50.                         lcd_hspw = LTE480_HSPW;
  51.                         lcd_frame_rate = LTE480_FRAME_RATE;
  52.                         InitLDI_LTE480();

  53. #elif (LCD_MODULE_TYPE == LCD_MODULE_LTV350)
  54.                         lcd_horizon_value = LTV350_HOZVAL;
  55.                         lcd_line_value = LTV350_LINEVAL;
  56.                         lcd_vbpd = LTV350_VBPD;
  57.                         lcd_vfpd = LTV350_VFPD;
  58.                         lcd_vspw = LTV350_VSPW;
  59.                         lcd_hbpd = LTV350_HBPD;
  60.                         lcd_hfpd = LTV350_HFPD;
  61.                         lcd_hspw = LTV350_HSPW;
  62.                         lcd_frame_rate = LTV350_FRAME_RATE;
  63.                         InitLDI_LTV350();
  64. #endif

  65.         pagewidth_in_byte = lcd_horizon_value/8*16;               
  66.         offsize_in_byte = 0;
  67.        
  68.         //LcdWindowOnOff(LCD_WIN_ALL,LCD_OFF);       
  69.         s2450LCD->WINCON0 &= ~0x01;
  70.         s2450LCD->WINCON1 &= ~0x01;

  71.        
  72.         //LcdEnvidOnOff(LCD_OFF);
  73.         s2450LCD->VIDCON0 &= (~3); // ENVID Off using Per Frame method

  74.         //Basic_Display_Setting(window,WINCONx_16BPP_565,lcd_horizon_value,0);
  75.        
  76.         s2450LCD->VIDCON0 = VIDCON0_S_RGB_IF|VIDCON0_S_RGB_PAR|VIDCON0_S_VCLK_GATING_OFF|VIDCON0_S_CLKDIR_DIVIDED|VIDCON0_S_CLKSEL_HCLK;

  77.         hsync_cnt = (lcd_vbpd+lcd_vfpd+lcd_vspw+lcd_line_value);
  78.         vclk_cnt = (lcd_hbpd+lcd_hfpd+lcd_hspw+lcd_horizon_value);



  79.         clkval = (UINT8)(((float)S3C2450_HCLK/(float)(hsync_cnt*vclk_cnt*lcd_frame_rate*2))+0.5)-1;       
  80.         s2450LCD->VIDCON0 |= (clkval <

  81.         s2450LCD->VIDCON1 = VIDCON1_S_HSYNC_INVERTED|VIDCON1_S_VSYNC_INVERTED;
  82.        
  83.         s2450LCD->VIDTCON0=((lcd_vbpd-1)<
  84.         s2450LCD->VIDTCON1=((lcd_hbpd-1)<
  85.         s2450LCD->VIDTCON2 = ((lcd_line_value-1)<
  86.        
  87.         s2450LCD->WINCON0 = (0<
  88.         s2450LCD->VIDOSD0A = (0<
  89.         s2450LCD->VIDOSD0B = ((lcd_horizon_value-1)<

  90.         s2450LCD->VIDW00ADD0B0 = (UINT32)IMAGE_FRAMEBUFFER_DMA_BASE;               
  91.                         // buffer end address
  92.         s2450LCD->VIDW00ADD1B0 = (UINT32)IMAGE_FRAMEBUFFER_DMA_BASE + (LCD_WIDTH*LCD_HEIGHT*2);
  93.                         // buffer size
  94.         s2450LCD->VIDW00ADD2B0 = (offsize_in_byte<
  95.        
  96.         s2450LCD->WINCON0 |= (1<
  97.         //*WxKEYCON0_Reg_Addr[win_num] = 0;
  98.         //*WINxMAP_Reg_Addr[win_num] = 0;
  99.         s2450LCD->WINCON0 |= 0x1;
  100.         s2450LCD->VIDCON0 |= 0x3;

  101.         s2450INTR->INTSUBMSK |= (0xf << IRQ_SUB_LCD1);        // MASK all LCD Sub Interrupt
  102.         if(  LCD_MODULE_TYPE ==           LCD_MODULE_LTV350){
  103.              memcpy((void *)IMAGE_FRAMEBUFFER_UA_BASE, prayer16bpp, LCD_ARRAY_SIZE_TFT_16BIT);
  104.                 }
  105.         else if(LCD_MODULE_TYPE == LCD_MODULE_LTE480WV){
  106.                 pFB = (unsigned short *)IMAGE_FRAMEBUFFER_UA_BASE;

  107.                 for (i=0; i
  108.                         *pFB++ = 0x001F;                // Blue
  109.                 }

  110. }
  111. #endif


回复评论 (11)

InitLDI_LTV350函数:


  1. #define LTV350 (TRUE)

  2. void InitLDI_LTV350(void)
  3. {       
  4.             volatile S3C2450_IOPORT_REG *s2450IOP = (S3C2450_IOPORT_REG *)OALPAtoVA(S3C2450_BASE_REG_PA_IOPORT, FALSE);
  5.             volatile S3C2450_LCD_REG    *s2450LCD = (S3C2450_LCD_REG *)OALPAtoVA(S3C2450_BASE_REG_PA_LCD, FALSE);       
  6.                 volatile S3C2450_CLKPWR_REG *s2450PWR = (S3C2450_CLKPWR_REG *)OALPAtoVA(S3C2450_BASE_REG_PA_CLOCK_POWER, FALSE);           
  7.                
  8.         // enable EPLL CLOCK for LCD
  9.         s2450PWR->SCLKCON |= (1<<10);

  10.         // LCD module reset
  11.         s2450IOP->GPBDAT |= (1<<(LCD_nRESET));
  12.         s2450IOP->GPBDAT &= ~(1<<(LCD_nRESET)); // goes to LOW

  13.         // delay about 5ms
  14.         delayLoop(LCD_DELAY_1MS*10);       
  15.         s2450IOP->GPBDAT |= (1<<(LCD_nRESET));  // goes to HIGH

  16.                
  17.         //SET_CONFIG_PORT( spi1)
  18.         s2450IOP->GPLCON &= ~(((3<<(LCD_DEN_BIT*2))) | ((3<<(LCD_DCLK_BIT*2))) | ((3<<(LCD_DSERI_BIT*2))));       
  19.         s2450IOP->GPLCON |= (((1<<(LCD_DEN_BIT*2))) | ((1<<(LCD_DCLK_BIT*2))) | ((1<<(LCD_DSERI_BIT*2))));
  20.         // pull-up pull-down disable
  21.         s2450IOP->GPLUDP &= ~(((3<<(LCD_DEN_BIT*2))) | ((3<<(LCD_DCLK_BIT*2))) | ((3<<(LCD_DSERI_BIT*2))));       

  22.         s2450IOP->GPLUDP |= (((1<<(LCD_DEN_BIT*2))) | ((1<<(LCD_DCLK_BIT*2))) | ((1<<(LCD_DSERI_BIT*2))));

  23.         // delay about 5ms
  24.         delayLoop(LCD_DELAY_1MS*10);       
  25.                
  26.         LCD_DEN_Hi;
  27.         LCD_DCLK_Hi;
  28.         LCD_DSERI_Hi;

  29.         ///////////////////////////////////////////////////////////////////
  30.         // Init_Lcd_Function
  31.         //////////////////////////////////////////////////////////////////
  32. #if LTV350
  33.         Write_LDI_LTV350(0x01,0x001d);
  34.         Write_LDI_LTV350(0x02,0x0000);
  35.             Write_LDI_LTV350(0x03,0x0000);
  36.             Write_LDI_LTV350(0x04,0x0000);
  37.             Write_LDI_LTV350(0x05,0x50a3);
  38.             Write_LDI_LTV350(0x06,0x0000);
  39.             Write_LDI_LTV350(0x07,0x0000);
  40.             Write_LDI_LTV350(0x08,0x0000);
  41.            Write_LDI_LTV350(0x09,0x0000);
  42.            Write_LDI_LTV350(0x0a,0x0000);
  43.            Write_LDI_LTV350(0x10,0x0000);
  44.            Write_LDI_LTV350(0x11,0x0000);
  45.            Write_LDI_LTV350(0x12,0x0000);
  46.            Write_LDI_LTV350(0x13,0x0000);
  47.            Write_LDI_LTV350(0x14,0x0000);
  48.            Write_LDI_LTV350(0x15,0x0000);
  49.            Write_LDI_LTV350(0x16,0x0000);
  50.            Write_LDI_LTV350(0x17,0x0000);
  51.            Write_LDI_LTV350(0x18,0x0000);
  52.            Write_LDI_LTV350(0x19,0x0000);
  53. #else
  54.         Write_LDI_LTV350(0x09,0x0000);
  55. #endif
  56.         ///////////////////////////////////////////////////////////////////
  57.         // Power On Reset Display off State
  58.         //////////////////////////////////////////////////////////////////
  59.         //Write_LDI_LTV350(0x09,0x0000);

  60.         // delay about 10ms
  61.         delayLoop(LCD_DELAY_1MS*10);

  62.         ///////////////////////////////////////////////////////////////////
  63.         // Power Setting Function 1
  64.         //////////////////////////////////////////////////////////////////
  65. #if LTV350
  66.         Write_LDI_LTV350(0x09,0x4055);
  67.         Write_LDI_LTV350(0x0a,0x0000);
  68. #else
  69.         Write_LDI_LTV350(0x09,0x4055);
  70.         Write_LDI_LTV350(0x0a,0x2000);
  71. #endif

  72.         // delay about 10ms
  73.         delayLoop(LCD_DELAY_1MS*10);

  74.         /////////////////////////////////////////////////////////////////////
  75.         // Power Setting 2
  76.         /////////////////////////////////////////////////////////////////////
  77. #if LTV350
  78.         Write_LDI_LTV350(0x0a,0x2000);
  79. #else
  80.         Write_LDI_LTV350(0x09,0x4055);
  81. #endif

  82.         // delay about 50ms
  83.         delayLoop(LCD_DELAY_1MS*50);

  84.         ///////////////////////////////////////////////////////////////////
  85.         // Instruction Setting
  86.         ///////////////////////////////////////////////////////////////////
  87. #if LTV350
  88.         Write_LDI_LTV350(0x01,0x409d);
  89.         Write_LDI_LTV350(0x02,0x0204);
  90.         Write_LDI_LTV350(0x03,0x2100);
  91.         Write_LDI_LTV350(0x04,0x1000);
  92.         Write_LDI_LTV350(0x05,0x5003);
  93.         Write_LDI_LTV350(0x06,0x0009);        //vbp
  94.         Write_LDI_LTV350(0x07,0x000f);        //hbp
  95.         Write_LDI_LTV350(0x08,0x0800);
  96.         Write_LDI_LTV350(0x10,0x0000);
  97.         Write_LDI_LTV350(0x11,0x0000);
  98.         Write_LDI_LTV350(0x12,0x000f);
  99.         Write_LDI_LTV350(0x13,0x1f00);
  100.         Write_LDI_LTV350(0x14,0x0000);
  101.         Write_LDI_LTV350(0x15,0x0000);
  102.         Write_LDI_LTV350(0x16,0x0000);
  103.         Write_LDI_LTV350(0x17,0x0000);
  104.         Write_LDI_LTV350(0x18,0x0000);
  105.         Write_LDI_LTV350(0x19,0x0000);
  106. #else
  107.         Write_LDI_LTV350(0x01,0x409d);
  108.         Write_LDI_LTV350(0x02,0x0204);
  109.         Write_LDI_LTV350(0x03,0x0100);
  110.         Write_LDI_LTV350(0x04,0x3000);
  111.         Write_LDI_LTV350(0x05,0x4003);
  112.         Write_LDI_LTV350(0x06,0x0009);        //vbp
  113.         Write_LDI_LTV350(0x07,0x000f);        //hbp
  114.         Write_LDI_LTV350(0x08,0x0c00);
  115.         Write_LDI_LTV350(0x10,0x0103);
  116.         Write_LDI_LTV350(0x11,0x0301);
  117.         Write_LDI_LTV350(0x12,0x1f0f);
  118.         Write_LDI_LTV350(0x13,0x1f0f);
  119.         Write_LDI_LTV350(0x14,0x0707);
  120.         Write_LDI_LTV350(0x15,0x0307);
  121.         Write_LDI_LTV350(0x16,0x0707);
  122.         Write_LDI_LTV350(0x17,0x0000);
  123.         Write_LDI_LTV350(0x18,0x0004);
  124.         Write_LDI_LTV350(0x19,0x0000);
  125. #endif


  126.         // delay about 2 frames
  127.         delayLoop(LCD_DELAY_1MS*50);


  128.         ///////////////////////////////////////////////////////////////////
  129.         // Display On Sequence
  130.         ///////////////////////////////////////////////////////////////////
  131. #if LTV350
  132.         Write_LDI_LTV350(0x09,0x4a55);
  133.         Write_LDI_LTV350(0x0a,0x2000);
  134. #else
  135.         Write_LDI_LTV350(0x09,0x4a55);
  136.         Write_LDI_LTV350(0x05,0x5003);

  137. #endif

  138. }
点赞  2008-11-26 18:50
Write_LDI_LTV350  函数:


  1. void Write_LDI_LTV350(int address, int data)
  2. {
  3.         volatile S3C2450_IOPORT_REG *s2450IOP = (S3C2450_IOPORT_REG *)OALPAtoVA(S3C2450_BASE_REG_PA_IOPORT, FALSE);
  4.         volatile S3C2450_LCD_REG    *s2450LCD = (S3C2450_LCD_REG *)OALPAtoVA(S3C2450_BASE_REG_PA_LCD, FALSE);       
  5.         UINT8        dev_id_code=0x1D;
  6.         int     j;
  7.         unsigned char DELAY=50;
  8.                

  9.        
  10.         LCD_DEN_Hi;                 //        EN = High                                        CS high
  11.         LCD_DCLK_Hi;                                                        //        SCL High
  12.         LCD_DSERI_Hi;                                                        //        Data Low

  13.         delayLoop(DELAY);

  14.         LCD_DEN_Lo;                 //        EN = Low                                CS Low
  15.         delayLoop(DELAY);
  16.        
  17.         for (j = 5; j >= 0; j--)
  18.         {       
  19.                 LCD_DCLK_Lo;                                                        //        SCL Low

  20.                 if ((dev_id_code >> j) & 0x0001)        // DATA HIGH or LOW
  21.                 {
  22.                         LCD_DSERI_Hi;               
  23.                 }
  24.                 else
  25.                 {
  26.                         LCD_DSERI_Lo;
  27.                 }

  28.                 delayLoop(DELAY);

  29.                 LCD_DCLK_Hi;                        // CLOCK = High
  30.                 delayLoop(DELAY);

  31.         }
  32.        
  33.         // RS = "0" : index data
  34.         LCD_DCLK_Lo;                        // CLOCK = Low
  35.         LCD_DSERI_Lo;
  36.         delayLoop(DELAY);
  37.         LCD_DCLK_Hi;                        // CLOCK = High
  38.         delayLoop(DELAY);

  39.         // Write
  40.         LCD_DCLK_Lo;                        // CLOCK = Low
  41.         LCD_DSERI_Lo;
  42.         delayLoop(DELAY);
  43.         LCD_DCLK_Hi;                        // CLOCK = High
  44.         delayLoop(DELAY);

  45.         for (j = 15; j >= 0; j--)
  46.         {
  47.                 LCD_DCLK_Lo;                                                        //        SCL Low

  48.                 if ((address >> j) & 0x0001)        // DATA HIGH or LOW
  49.                 {
  50.                         LCD_DSERI_Hi;               
  51.                 }
  52.                 else
  53.                 {
  54.                         LCD_DSERI_Lo;
  55.                 }

  56.                 delayLoop(DELAY);

  57.                 LCD_DCLK_Hi;                        // CLOCK = High
  58.                 delayLoop(DELAY);

  59.         }
  60.         LCD_DSERI_Hi;
  61.         delayLoop(DELAY);
  62.        
  63.         LCD_DEN_Hi;                                 // EN = High
  64.         delayLoop(DELAY*10);

  65.         LCD_DEN_Lo;                 //        EN = Low                                CS Low
  66.         delayLoop(DELAY);
  67.        
  68.         for (j = 5; j >= 0; j--)
  69.         {       
  70.                 LCD_DCLK_Lo;                                                        //        SCL Low

  71.                 if ((dev_id_code >> j) & 0x0001)        // DATA HIGH or LOW
  72.                 {
  73.                         LCD_DSERI_Hi;               
  74.                 }
  75.                 else
  76.                 {
  77.                         LCD_DSERI_Lo;
  78.                 }

  79.                 delayLoop(DELAY);

  80.                 LCD_DCLK_Hi;                        // CLOCK = High
  81.                 delayLoop(DELAY);

  82.         }
  83.        
  84.         // RS = "1" instruction data
  85.         LCD_DCLK_Lo;                        // CLOCK = Low
  86.         LCD_DSERI_Hi;
  87.         delayLoop(DELAY);
  88.         LCD_DCLK_Hi;                        // CLOCK = High
  89.         delayLoop(DELAY);

  90.         // Write
  91.         LCD_DCLK_Lo;                        // CLOCK = Low
  92.         LCD_DSERI_Lo;
  93.         delayLoop(DELAY);
  94.         LCD_DCLK_Hi;                        // CLOCK = High
  95.         delayLoop(DELAY);

  96.         for (j = 15; j >= 0; j--)
  97.         {
  98.                 LCD_DCLK_Lo;                                                        //        SCL Low

  99.                 if ((data >> j) & 0x0001)        // DATA HIGH or LOW
  100.                 {
  101.                         LCD_DSERI_Hi;               
  102.                 }
  103.                 else
  104.                 {
  105.                         LCD_DSERI_Lo;
  106.                 }

  107.                 delayLoop(DELAY);

  108.                 LCD_DCLK_Hi;                        // CLOCK = High
  109.                 delayLoop(DELAY);

  110.         }
  111.        
  112.         LCD_DEN_Hi;                                 // EN = High
  113.         delayLoop(DELAY);

  114. }
点赞  2008-11-26 18:52
初始化lcd, LTV350是三星的一种320x240屏
点赞  2008-11-26 19:05
初始化屏的啊
点赞  2008-11-26 19:22
初始化屏,我也知道啊。
现在我自己查了下,有人好像说,这些代码是来初始化SPI的。至于怎么初始化法,我没看懂哦,希望有人可以点拨一下。
特别是:

  1.     Write_LDI_LTV350(0x01,0x001d);
  2.     Write_LDI_LTV350(0x02,0x0000);
  3.         Write_LDI_LTV350(0x03,0x0000);
  4.         Write_LDI_LTV350(0x04,0x0000);
  5.         Write_LDI_LTV350(0x05,0x50a3);
  6.         Write_LDI_LTV350(0x06,0x0000);
  7.         Write_LDI_LTV350(0x07,0x0000);
  8.         Write_LDI_LTV350(0x08,0x0000);
  9.        Write_LDI_LTV350(0x09,0x0000);
  10.        Write_LDI_LTV350(0x0a,0x0000);
  11.        Write_LDI_LTV350(0x10,0x0000);
  12.        Write_LDI_LTV350(0x11,0x0000);
  13.        Write_LDI_LTV350(0x12,0x0000);
  14.        Write_LDI_LTV350(0x13,0x0000);
  15.        Write_LDI_LTV350(0x14,0x0000);
  16.        Write_LDI_LTV350(0x15,0x0000);
  17.        Write_LDI_LTV350(0x16,0x0000);
  18.        Write_LDI_LTV350(0x17,0x0000);
  19.        Write_LDI_LTV350(0x18,0x0000);
  20.        Write_LDI_LTV350(0x19,0x0000);


这些代码是干什么用,为什么要这样设?
现在我怀疑我的群创3.5寸的,PT035TN01屏显示不正常,就是SPI没有初始化好。。。
点赞  2008-11-26 20:58
我现在天天看这些代码,从来没有想过他们的作用,呵呵。。。。。
点赞  2008-11-26 22:28
引用: 引用 6 楼 Seven_zhangxw 的回复:
我现在天天看这些代码,从来没有想过他们的作用,呵呵。。。。。

个人理解,LCD的设置,其实就是对I/O口配置好,LCD寄存器配置好,剩下的就是一些SPI等时钟频率等一些的初始化,现在我觉得前两个没什么大问题了,感觉就剩第三个有疑问了。
点赞  2008-11-27 09:24
为什么要那么设,这个是和LCD的controler IC有关系的。你用的LCD,内部是有一个控制IC的,它的一些寄存器需要在上电的时候设置好。
点赞  2008-11-27 10:00
引用: 引用 8 楼 yashi 的回复:
为什么要那么设,这个是和LCD的controler IC有关系的。你用的LCD,内部是有一个控制IC的,它的一些寄存器需要在上电的时候设置好。

这个是分析出来的,因为看了一下LCD的Datasheet,最后部分标明了通过这种方式来选择屏的使用模式,我要用最后一种cdh:24 bit RGB Mode (DE mode)  。

  1.        Note: 3-Wire Control Registers List  
  2.   

  3.                 3-Wire Register                                       Register Description  

  4.                D[15:10]              Name          Init       R/W                 Function Description  

  5.                000000b                R00         03h         R/W                System control register  

  6.                000001b                R01         40h         R/W         Timing controller function register  

  7.                000010b                R02         11h         R/W               Operation control register  

  8.                000011b                R03        (cch)*       R/W          Input data format control register  

  9.                000100b                R04         93h         R/W       Source Timing delay control register  

  10.                000101b                R05         12h         R/W         Gate Timing delay control register  

  11.                 000111b               R07         03h         R/W          Internal function control register  

  12.                001000b                R08         08h         R/W            RGB contrast control register  

  13.                001001b                R09         40h         R/W          RGB brightness control register  

  14.                001010b                R0A         88h         R/W           Hue/Saturation control register  

  15.                001011b                R0B         88h         R/W          R/B Sub-contrast control register  

  16.                001100b                R0C         20h         R/W         R Sub-brightness control register  

  17.                001101b                R0D         20h         R/W          B Sub-brightness control register  

  18.          
  19.          * Note: c4h:ITU-R BT 656 Mode  
  20.                        c2h:ITU-R BT 601 Mode  
  21.                        c8h:8 bit RGB Mode(HV Mode)  
  22.                        c9h:8 bit RGB Mode(DE Mode)  
  23.                     cch:24 bit RGB Mode (HV mode)  
  24.                     cdh:24 bit RGB Mode (DE mode)  
点赞  2008-11-27 11:25
ltv350屏需要初始化内部寄存器,所以用gpio模拟spi负责初始化。如果你的屏不需要初始化内部寄存器可以把这些去掉
点赞  2008-11-27 13:02
引用: 引用 10 楼 laozei000 的回复:
ltv350屏需要初始化内部寄存器,所以用gpio模拟spi负责初始化。如果你的屏不需要初始化内部寄存器可以把这些去掉

明白了一些了,正在努力调试中。
点赞  2008-11-27 13:54
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复