lcdlib.h
上传用户:zbk8730
上传日期:2017-08-10
资源大小:12168k
文件大小:7k
源码类别:

uCOS

开发平台:

C/C++

  1. /************************************************ 
  2.   NAME    : LCDLIB.H
  3.   DESC    :
  4.   Revision History
  5.   2002.03.12 : draft ver 0.0
  6.  ************************************************/
  7. #ifndef __LCDLIB_H__
  8. #define __LCDLIB_H__
  9. #define MVAL (13)
  10. #define MVAL_USED  (0)
  11. #define M5D(n) ((n) & 0x1fffff) // To get lower 21bits
  12. //Selecting LCD type
  13. //STN LCD Panel(320*240)
  14. #define MODE_STN_1BIT  (0x1001)
  15. #define MODE_STN_2BIT   (0x1002)
  16. #define MODE_STN_4BIT   (0x1004)
  17. //Color STN LCD Panel(320*240)
  18. #define MODE_CSTN_8BIT   (0x2001)
  19. #define MODE_CSTN_12BIT (0x2002)
  20. #define MODE_CSTN_12BIT_UP (0x2004)
  21. #define MODE_CSTN_16BIT (0x2008) // for 2440A
  22. //TFT LCD Panel(240*320)
  23. #define MODE_TFT_1BIT_240320     (0x4101)
  24. #define MODE_TFT_8BIT_240320   (0x4102)
  25. #define MODE_TFT_16BIT_240320    (0x4104)
  26. #define MODE_TFT_24BIT_240320    (0x4108)
  27. //TFT LCD Panel(640*480)
  28. #define MODE_TFT_1BIT_640480     (0x4201)
  29. #define MODE_TFT_8BIT_640480     (0x4202)
  30. #define MODE_TFT_16BIT_640480    (0x4204)
  31. #define MODE_TFT_24BIT_640480    (0x4208)
  32. //TFT LCD Panel(800*600)
  33. #define MODE_TFT_1BIT_800600     (0x4401)
  34. #define MODE_TFT_8BIT_800600     (0x4402)
  35. #define MODE_TFT_16BIT_800600    (0x4404)
  36. //Physical LCD resolution
  37. //STN
  38. #define LCD_XSIZE_STN  (320)
  39. #define LCD_YSIZE_STN  (240)
  40. //Color STN
  41. #define LCD_XSIZE_CSTN  (320)
  42. #define LCD_YSIZE_CSTN  (240)
  43. //TFT 240320
  44. #define LCD_XSIZE_TFT_240320  (240)
  45. #define LCD_YSIZE_TFT_240320  (320)
  46. //TFT 640480
  47. #define LCD_XSIZE_TFT_640480  (640)
  48. #define LCD_YSIZE_TFT_640480  (480)
  49. //TFT 800600
  50. #define LCD_XSIZE_TFT_800600  (800)
  51. #define LCD_YSIZE_TFT_800600  (600)
  52. //Virtual screen size
  53. //STN
  54. #define SCR_XSIZE_STN  (LCD_XSIZE_STN*2)   //for virtual screen  
  55. #define SCR_YSIZE_STN  (LCD_YSIZE_STN*2)
  56. //Color STN
  57. #define SCR_XSIZE_CSTN  (LCD_XSIZE_CSTN*2)   //for virtual screen  
  58. #define SCR_YSIZE_CSTN  (LCD_YSIZE_CSTN*2)
  59. //TFT 240320
  60. #define SCR_XSIZE_TFT_240320  (LCD_XSIZE_TFT_240320*2)
  61. #define SCR_YSIZE_TFT_240320  (LCD_YSIZE_TFT_240320*2)
  62. //TFT 640480
  63. #define SCR_XSIZE_TFT_640480  (LCD_XSIZE_TFT_640480*2)
  64. #define SCR_YSIZE_TFT_640480  (LCD_YSIZE_TFT_640480*2)
  65. //TFT 800600
  66. #define SCR_XSIZE_TFT_800600  (LCD_XSIZE_TFT_800600*2)
  67. #define SCR_YSIZE_TFT_800600  (LCD_YSIZE_TFT_800600*2)
  68. //Valid data 
  69. //STN
  70. #define HOZVAL_STN (LCD_XSIZE_STN/4-1) // Valid VD data line number is 4.
  71. #define LINEVAL_STN (LCD_YSIZE_STN-1)
  72. //Color STN
  73. #define HOZVAL_CSTN (LCD_XSIZE_CSTN*3/8-1) // Valid VD data line number is 8.
  74. #define LINEVAL_CSTN (LCD_YSIZE_CSTN-1)
  75. //TFT240320
  76. #define HOZVAL_TFT_240320 (LCD_XSIZE_TFT_240320-1)
  77. #define LINEVAL_TFT_240320 (LCD_YSIZE_TFT_240320-1)
  78. //TFT640480
  79. #define HOZVAL_TFT_640480 (LCD_XSIZE_TFT_640480-1)
  80. #define LINEVAL_TFT_640480 (LCD_YSIZE_TFT_640480-1)
  81. //TFT800600
  82. #define HOZVAL_TFT_800600 (LCD_XSIZE_TFT_800600-1)
  83. #define LINEVAL_TFT_800600 (LCD_YSIZE_TFT_800600-1)
  84. //STN
  85. #define WLH_STN      (0)
  86. #define WDLY_STN (0)
  87. #define LINEBLANK_MONO (1 &0xff) // MONO timing parameter for CPT CLS-040S-C3M(CHUNGHWA)
  88. #define LINEBLANK_GRAY (13 &0xff)// GRAY timing parameter for CPT CLS-040S-C3M(CHUNGHWA)
  89. //CSTN timing parameter for LCBHBT161M(NANYA)
  90. #define WLH_CSTN         (0)
  91. #define WDLY_CSTN (0)
  92. #define LINEBLANK_CSTN (16 &0xff)
  93. //Timing parameter for LTS350Q1(SAMSUNG) 
  94. #define VBPD_240320 ((2-1)&0xff)
  95. #define VFPD_240320 ((3-1)&0xff)
  96. #define VSPW_240320 ((2-1) &0x3f)
  97. #define HBPD_240320 ((7-1)&0x7f)
  98. #define HFPD_240320 ((3-1)&0xff)
  99. #define HSPW_240320 ((4-1)&0xff)
  100. //Timing parameter for V16C6448AB(PRIME VIEW) 
  101. #define VBPD_640480 ((33-1)&0xff)
  102. #define VFPD_640480 ((10-1)&0xff)
  103. #define VSPW_640480 ((2-1) &0x3f)
  104. #define HBPD_640480 ((48-1)&0x7f)
  105. #define HFPD_640480 ((16-1)&0xff)
  106. #define HSPW_640480 ((96-1)&0xff)
  107. //Timing parameter for LP104S5-B2AP(LGPHILIPS) 
  108. #define VBPD_800600         ((2-1)&0xff)
  109. #define VFPD_800600 ((3-1)&0xff)
  110. #define VSPW_800600 ((1-1) &0x3f)
  111. #define HBPD_800600 ((30-1)&0x7f)
  112. #define HFPD_800600 ((30-1)&0xff)
  113. #define HSPW_800600 ((12-1)&0xff)
  114. #define CLKVAL_STN_MONO (20) 
  115.     // 30hz @100Mhz(HCLK),WLH=16hclk,WDLY=16hclk,LINEBLANK=1*8hclk,VD=4 
  116. #define CLKVAL_STN_GRAY (10) 
  117.     // 60hz @100Mhz,WLH=16hclk,WDLY=16hclk,LINEBLANK=13*8hclk,VD=4 
  118. #define CLKVAL_CSTN (9)   
  119.     // 90Hz @100Mhz,WLH=16hclk,WDLY=16hclk,LINEBLANK=16*8hclk,VD=8  
  120. //#define CLKVAL_TFT_240320 (U32)(HCLK/10000000.0+0.5)-1 
  121. //#define CLKVAL_TFT_240320 (9)
  122.     // 60hz @100Mhz
  123.     //VSYNC,HSYNC should be inverted
  124.     //HBPD=6VCLK,HFPD=2VCLK,HSPW=3VCLK
  125.     //VBPD=1HSYNC,VFPD=2HSYNC,VSPW=1HSYNC
  126. #define CLKVAL_TFT_240320 (12)
  127. // 60hz @133Mhz
  128. // (9) 60hz @100Mhz
  129. #define CLKVAL_TFT_640480  (1)
  130.     //53.5hz @90Mhz
  131.     //VSYNC,HSYNC should be inverted
  132.     //HBPD=47VCLK,HFPD=15VCLK,HSPW=95VCLK
  133.     //VBPD=32HSYNC,VFPD=9HSYNC,VSPW=1HSYNC
  134. #define CLKVAL_TFT_800600  (0)
  135.     //85hz @90Mhz
  136.     //71hz @76Mhz
  137.     //VSYNC,HSYNC should be inverted
  138.     //HBPD=29VCLK,HFPD=29VCLK,HSPW=11VCLK
  139.     //VBPD=1HSYNC,VFPD=2HSYNC,VSPW=0HSYNC
  140. #define LCDFRAMEBUFFER 0x33800000 //_NONCACHE_STARTADDRESS 
  141.     // 1. The LCD frame buffer should be write-through or non-cachable.
  142.     // 2. The total frame memory should be inside 4MB.
  143.     // 3. To meet above 2 conditions, the frame buffer should be 
  144.     // inside the following regions.
  145.     // 0x31000000~0x313ffffff,
  146.     // 0x31400000~0x317ffffff,
  147.     // 0x31800000~0x31bffffff,
  148.     //        .....    
  149.     // 0x33800000~0x33bffffff                
  150. //Mono
  151. extern U32 (*frameBuffer1Bit)[SCR_XSIZE_STN/32];
  152. //Gray
  153. extern U32 (*frameBuffer2Bit)[SCR_XSIZE_STN/16];
  154. extern U32 (*frameBuffer4Bit)[SCR_XSIZE_STN/8];
  155. //Color STN
  156. extern U32 (*frameBuffer8Bit)[SCR_XSIZE_CSTN/4];
  157. extern U32 (*frameBuffer12Bit)[SCR_XSIZE_CSTN*3/8]; // The least common multiple (between 12 and 32) is 96
  158. extern U32 (*frameBuffer16Bit)[SCR_XSIZE_CSTN/2]; // for 2440A
  159. //TFT 240320
  160. extern U32 (*frameBuffer8BitTft240320)[SCR_XSIZE_TFT_240320/4];
  161. extern U32 (*frameBuffer16BitTft240320)[SCR_XSIZE_TFT_240320/2];
  162. extern U32 (*frameBuffer24BitTft240320)[SCR_XSIZE_TFT_240320];
  163. //TFT 640480
  164. extern U32 (*frameBuffer1BitTft640480)[SCR_XSIZE_TFT_640480/32];
  165. extern U32 (*frameBuffer8BitTft640480)[SCR_XSIZE_TFT_640480/4];
  166. extern U32 (*frameBuffer16BitTft640480)[SCR_XSIZE_TFT_640480/2];
  167. extern U32 (*frameBuffer24BitTft640480)[SCR_XSIZE_TFT_640480]; // Unpacked 24bit 
  168. //TFT 800600
  169. extern U32 (*frameBuffer1BitTft800600)[SCR_XSIZE_TFT_800600/32];
  170. extern U32 (*frameBuffer8BitTft800600)[SCR_XSIZE_TFT_800600/4];
  171. extern U32 (*frameBuffer16BitTft800600)[SCR_XSIZE_TFT_800600/2];
  172. //void Lcd_Init(int type);
  173. //void MoveViewPort(int);
  174. //void Lcd_CstnOnOff(int onoff);
  175. //void Lcd_EnvidOnOff(int onoff);
  176. //void Lcd_PowerEnable(int invpwren,int pwren);
  177. //void Lcd_MoveViewPort(int vx,int vy,int type);
  178. //void Lcd_Lpc3600Enable(void);
  179. //void Lcd_Lcc3600Enable(void);
  180. //void Lcd_TconDisable(void);
  181. #endif /*__LCDLIB_H__*/