LcdDr.h
上传用户:lqx1163
上传日期:2014-08-13
资源大小:9183k
文件大小:11k
源码类别:

MTK

开发平台:

C/C++

  1. /*****************************************************************************
  2. *  Copyright Statement:
  3. *  --------------------
  4. *  This software is protected by Copyright and the information contained
  5. *  herein is confidential. The software may not be copied and the information
  6. *  contained herein may not be used or disclosed except with the written
  7. *  permission of MediaTek Inc. (C) 2005
  8. *
  9. *  BY OPENING THIS FILE, BUYER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND AGREES
  10. *  THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS ("MEDIATEK SOFTWARE")
  11. *  RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE PROVIDED TO BUYER ON
  12. *  AN "AS-IS" BASIS ONLY. MEDIATEK EXPRESSLY DISCLAIMS ANY AND ALL WARRANTIES,
  13. *  EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF
  14. *  MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR NONINFRINGEMENT.
  15. *  NEITHER DOES MEDIATEK PROVIDE ANY WARRANTY WHATSOEVER WITH RESPECT TO THE
  16. *  SOFTWARE OF ANY THIRD PARTY WHICH MAY BE USED BY, INCORPORATED IN, OR
  17. *  SUPPLIED WITH THE MEDIATEK SOFTWARE, AND BUYER AGREES TO LOOK ONLY TO SUCH
  18. *  THIRD PARTY FOR ANY WARRANTY CLAIM RELATING THERETO. MEDIATEK SHALL ALSO
  19. *  NOT BE RESPONSIBLE FOR ANY MEDIATEK SOFTWARE RELEASES MADE TO BUYER'S
  20. *  SPECIFICATION OR TO CONFORM TO A PARTICULAR STANDARD OR OPEN FORUM.
  21. *
  22. *  BUYER'S SOLE AND EXCLUSIVE REMEDY AND MEDIATEK'S ENTIRE AND CUMULATIVE
  23. *  LIABILITY WITH RESPECT TO THE MEDIATEK SOFTWARE RELEASED HEREUNDER WILL BE,
  24. *  AT MEDIATEK'S OPTION, TO REVISE OR REPLACE THE MEDIATEK SOFTWARE AT ISSUE,
  25. *  OR REFUND ANY SOFTWARE LICENSE FEES OR SERVICE CHARGE PAID BY BUYER TO
  26. *  MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE. 
  27. *
  28. *  THE TRANSACTION CONTEMPLATED HEREUNDER SHALL BE CONSTRUED IN ACCORDANCE
  29. *  WITH THE LAWS OF THE STATE OF CALIFORNIA, USA, EXCLUDING ITS CONFLICT OF
  30. *  LAWS PRINCIPLES.  ANY DISPUTES, CONTROVERSIES OR CLAIMS ARISING THEREOF AND
  31. *  RELATED THERETO SHALL BE SETTLED BY ARBITRATION IN SAN FRANCISCO, CA, UNDER
  32. *  THE RULES OF THE INTERNATIONAL CHAMBER OF COMMERCE (ICC).
  33. *
  34. *****************************************************************************/
  35. /*******************************************************************************
  36.  * Filename:
  37.  * ---------
  38.  * L4Dr.h
  39.  *
  40.  * Project:
  41.  * --------
  42.  *   MAUI
  43.  *
  44.  * Description:
  45.  * ------------
  46.  *   This Module defines the LCD driver Hardware Addresses and Software MACROS.
  47.  *
  48.  * Author:
  49.  * -------
  50.  * -------
  51.  *
  52.  *==============================================================================
  53.  *             HISTORY
  54.  * Below this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
  55.  *------------------------------------------------------------------------------
  56.  * removed!
  57.  *
  58.  *------------------------------------------------------------------------------
  59.  * Upper this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
  60.  *==============================================================================
  61.  *******************************************************************************/
  62. #ifndef _LCDDR_H_
  63. #define  _LCDDR_H_
  64. /***************************************************************************** 
  65. * Define
  66. *****************************************************************************/
  67. /* -----------------------------------------------------------------------------
  68.    Following are the Hardware Addresses and LCD commands  
  69.    ------------------------------------------------------------------------------ */
  70. /* LCD Addresses --------------------------------------------------------------- */
  71. #define LCDrDUMMYADDR      (0x80170010)
  72. #define LCDrCTRLAddr    (0x30000000)    /* Control Command LCD Address */
  73. #define LCDrDATAAddr    (0x3000000f)    /* Data LCD Address */
  74. // LCD Dimensions --------------------------------------------------------------
  75. //------- Variables
  76. #define LCDrWIDTH          120  /* X axis */
  77. #define LCDrHEIGHT         160  /* Y Axis */
  78. #define MAXROWS         LCDrHEIGHT
  79. #define MAXCOL          LCDrWIDTH
  80. /* LCD Command Words -----------LCDr------------------------------------------------ */
  81. #define  LCDrDISON          0xaf        /* Display ON */
  82. #define  LCDrDISOFF         0xae        /* Display OFF */
  83. #define  LCDrDISNOR         0xa6        /* Display Normal */
  84. #define  LCDrDISINV         0xa7        /* Display Inverse */
  85. #define  LCDrCOMSCN         0xbb        /* Comman Scan Direction */
  86. #define  LCDrDISCTL         0xca        /* Display Control */
  87. #define  LCDrSLPIN          0x95        /* Sleep IN */
  88. #define  LCDrSLPOUT         0x94        /* Sleep Out */
  89. #define  LCDrPASET          0x75        /* Page Address Set */
  90. #define  LCDrCASET          0x15        /* Column Address Set */
  91. #define  LCDrDATCTL         0xbc        /* Data Control */
  92. #define  LCDrDATALL         0xbd        /* Data ALL */
  93. #define  LCDrDATCAN         0xbe        /* Data ALL Cancel */
  94. #define  LCDrRGBSET8        0xce        /* 8 bit colour mode */
  95. #define  LCDrRAMWR          0x5c        /* RAM Write */
  96. #define  LCDrRAMRD          0x5d        /* RAM Read */
  97. #define  LCDrPTLIN          0xa8        /* Partial IN */
  98. #define  LCDrPTLOUT         0xa9        /* Partiel Out */
  99. #define  LCDrRMWIN          0xe0        /* Read Modify IN */
  100. #define  LCDrRMWOUT         0xee        /* Read Modify Out */
  101. #define  LCDrASCSET         0xaa        /* Area Scroll Set */
  102. #define  LCDrSCSTART        0xab        /* Scroll Start */
  103. #define  LCDrOSCON          0xd1        /* Oscillator ON */
  104. #define  LCDrOSCOFF         0xd2        /* Oscillator OFF */
  105. #define  LCDrPWRCTR         0x20        /* Power Control */
  106. #define  LCDrVOLCTR         0x81        /* Voltage Control */
  107. #define  LCDrTMPGRD         0x82        /* Temperature Gradiant */
  108. #define  LCDrVOLUP          0xd6        /* Voltage Increment */
  109. #define  LCDrVOLDOWN        0xd7        /* Voltage Decrement */
  110. #define  LCDrEPCTIN         0xcd        /* EEPROM Control */
  111. #define  LCDrEPCOUT         0xcc        /* Cancel EEPROM Command */
  112. #define  LCDrEPMWR          0xfc        /* EEPROM Write */
  113. #define  LCDrEPMRD          0xfd        /* EEPROM Read */
  114. #define  LCDrEPSRRD1        0x7c        /* Read Register */
  115. #define  LCDrEPSRRD2        0x7d        /* Read Register */
  116. #define  LCDrNOP            0x25        /* No Operation */
  117. /* -----------------------------------------------------------------------------
  118.    Following are the Software MACROS and Routines  
  119.    ------------------------------------------------------------------------------ */
  120. /***************************************************************************** 
  121. * Define
  122. *****************************************************************************/
  123. #define  LCDrDISCTL_128DUTY      0x1f
  124. #define  LCDrDISCTL_160DUTY      0x27
  125. #define  LCDrDISCTL_11H          0x0a
  126. #define  LCDrDISCTL_13H          0x0c
  127. #define  LCDrCENTERSCROLL        0x00
  128. #define  LCDrTOPSCROLL           0x01
  129. #define  LCDrBOTTOMSCROLL        0x02
  130. #define  LCDrALLSCROLL           0x03
  131. /***************************************************************************** 
  132. * Typedef 
  133. *****************************************************************************/
  134. typedef unsigned char uint8;
  135. typedef signed char int8;
  136. typedef unsigned short int uint16;
  137. typedef signed short int int16;
  138. typedef unsigned int uint32;
  139. typedef signed int int32;
  140. /***************************************************************************** 
  141. * Define
  142. *****************************************************************************/
  143. #define LCDrdelay()                          
  144. {                                            
  145.    uint16 _stat;                             
  146.    _stat = *(volatile uint16 *)LCDrDUMMYADDR;
  147.    _stat = *(volatile uint16 *)LCDrDUMMYADDR;
  148.    _stat = *(volatile uint16 *)LCDrDUMMYADDR;
  149.    _stat = *(volatile uint16 *)LCDrDUMMYADDR;
  150. }
  151. #define LCDrCtrlWrite(_data)                
  152. {                                           
  153.    *(volatile uint16 *)LCDrCTRLAddr = _data;
  154.    LCDrdelay();                             
  155. }
  156. #define LCDrDataWrite(_data)                
  157. {                                           
  158.    *(volatile uint16 *)LCDrDATAAddr = _data;
  159.    LCDrdelay();                             
  160. }
  161. #define LCDrRAMWrite(_data)                 
  162. {                                           
  163.    *(volatile uint16 *)LCDrDATAAddr = _data;
  164.    LCDrdelay();                             
  165. }
  166. #define LCDrRAMRead(_data)                  
  167. {                                           
  168.    _data = *(volatile uint16 *)LCDrDATAAddr;
  169.    LCDrdelay();                             
  170. }
  171. #define LCDrDISPON()       LCDrCtrlWrite(LCDrDISON)
  172. #define LCDrDISPOFF()      LCDrCtrlWrite(LCDrDISOFF)
  173. #define LCDrNORMAL()       LCDrCtrlWrite(LCDrDISNOR)
  174. #define LCDrINVERSE()      LCDrCtrlWrite(LCDrDISINV)
  175. #define LCDrGENSLPIN()     LCDrCtrlWrite(LCDrSLPIN)
  176. #define LCDrGENSLPOUT()    LCDrCtrlWrite(LCDrSLPOUT)
  177. #define LCDrSetDATALL()      
  178. {                            
  179.    LCDrCtrlWrite(LCDrDATALL);
  180.    LCDrDataWrite(0x01);      
  181. }
  182. #define LCDrCancelDATALL() LCDrCtrlWrite(LCDrDATCAN)
  183. #define LCDrWrStart()      LCDrCtrlWrite(LCDrRAMWR)
  184. #define LCDrRdStart()      LCDrCtrlWrite(LCDrRAMRD)
  185. #define LCDrCtrlVOLUP()    LCDrCtrlWrite(LCDrVOLUP)
  186. #define LCDrCtrlVOLDOWN()  LCDrCtrlWrite(LCDrVOLDOWN)
  187. #define LCDrCTRLOSCON()    LCDrCtrlWrite(LCDrOSCON)
  188. #define LCDrCTRLOSCOFF()   LCDrCtrlWrite(LCDrOSCOFF)
  189. /***************************************************************************** 
  190. * Extern Global Function
  191. *****************************************************************************/
  192. extern void LCDrINIT(void);
  193. extern void LCDrSETCOMSCAN(void);
  194. extern void LCDrDISCONTROL(void);
  195. extern void LCDrSetDATANORCTL(void);
  196. extern void LCDrVOLTLEVEL(uint8 voltage);
  197. extern void LCDrTEMPERATUREGRAD(void);
  198. extern void LCDrPOWERCNTL(uint8 data);
  199. extern void LCDrSetPageAddr(uint8 startPage, uint8 endPage);
  200. extern void LCDrSetColAddr(uint8 startColumn, uint8 endColumn);
  201. extern void LCDrDISPartial(uint8 startBlock, uint8 endBlock);
  202. extern void LCDrDISPartialExit(void);
  203. extern void LCDrConfAREAScroll(uint8 topBlock, uint8 bottomBlock, uint8 noOfBlocks, uint8 areaMode);
  204. extern void LCDrScrollStart(uint8 startBlock);
  205. extern void LCDrClearAll(void);
  206. extern void LCDrblockClear(uint16 x1, uint16 y1, uint16 x2, uint16 y2);
  207. extern void LCDrblockRead(uint16 x1, uint16 y1, uint16 x2, uint16 y2);
  208. extern void LCDrBlockWrite(uint16 x1, uint16 y1, uint16 x2, uint16 y2);
  209. extern void LCDrDrawRectangle(uint16 x1, uint16 y1, uint16 x2, uint16 y2, uint16 data);
  210. extern void LCDrSize(uint16 *outLCDWidth, uint16 *outLCDHeight);
  211. extern void LCDrTest(void);
  212. extern void LCDrTestColours(void);
  213. /*----------------------------------------------------------------------------------------
  214.                         End of File LcdDr.h  
  215. -----------------------------------------------------------------------------------------*/
  216. #endif /* _LCDDR_H_ */