⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 lcddr.h

📁 MTK手机平台的MMI部分的源代码
💻 H
字号:
/*****************************************************************************
*  Copyright Statement:
*  --------------------
*  This software is protected by Copyright and the information contained
*  herein is confidential. The software may not be copied and the information
*  contained herein may not be used or disclosed except with the written
*  permission of MediaTek Inc. (C) 2005
*
*  BY OPENING THIS FILE, BUYER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND AGREES
*  THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS ("MEDIATEK SOFTWARE")
*  RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE PROVIDED TO BUYER ON
*  AN "AS-IS" BASIS ONLY. MEDIATEK EXPRESSLY DISCLAIMS ANY AND ALL WARRANTIES,
*  EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF
*  MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR NONINFRINGEMENT.
*  NEITHER DOES MEDIATEK PROVIDE ANY WARRANTY WHATSOEVER WITH RESPECT TO THE
*  SOFTWARE OF ANY THIRD PARTY WHICH MAY BE USED BY, INCORPORATED IN, OR
*  SUPPLIED WITH THE MEDIATEK SOFTWARE, AND BUYER AGREES TO LOOK ONLY TO SUCH
*  THIRD PARTY FOR ANY WARRANTY CLAIM RELATING THERETO. MEDIATEK SHALL ALSO
*  NOT BE RESPONSIBLE FOR ANY MEDIATEK SOFTWARE RELEASES MADE TO BUYER'S
*  SPECIFICATION OR TO CONFORM TO A PARTICULAR STANDARD OR OPEN FORUM.
*
*  BUYER'S SOLE AND EXCLUSIVE REMEDY AND MEDIATEK'S ENTIRE AND CUMULATIVE
*  LIABILITY WITH RESPECT TO THE MEDIATEK SOFTWARE RELEASED HEREUNDER WILL BE,
*  AT MEDIATEK'S OPTION, TO REVISE OR REPLACE THE MEDIATEK SOFTWARE AT ISSUE,
*  OR REFUND ANY SOFTWARE LICENSE FEES OR SERVICE CHARGE PAID BY BUYER TO
*  MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE. 
*
*  THE TRANSACTION CONTEMPLATED HEREUNDER SHALL BE CONSTRUED IN ACCORDANCE
*  WITH THE LAWS OF THE STATE OF CALIFORNIA, USA, EXCLUDING ITS CONFLICT OF
*  LAWS PRINCIPLES.  ANY DISPUTES, CONTROVERSIES OR CLAIMS ARISING THEREOF AND
*  RELATED THERETO SHALL BE SETTLED BY ARBITRATION IN SAN FRANCISCO, CA, UNDER
*  THE RULES OF THE INTERNATIONAL CHAMBER OF COMMERCE (ICC).
*
*****************************************************************************/

/*******************************************************************************
 * Filename:
 * ---------
 * L4Dr.h
 *
 * Project:
 * --------
 *   MAUI
 *
 * Description:
 * ------------
 *   This Module defines the LCD driver Hardware Addresses and Software MACROS.
 *
 * Author:
 * -------
 * -------
 *
 *==============================================================================
 *             HISTORY
 * Below this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
 *------------------------------------------------------------------------------
 * removed!
 *
 *------------------------------------------------------------------------------
 * Upper this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
 *==============================================================================
 *******************************************************************************/

#ifndef _LCDDR_H_
#define  _LCDDR_H_

/***************************************************************************** 
* Define
*****************************************************************************/

/* -----------------------------------------------------------------------------
   Following are the Hardware Addresses and LCD commands  
   ------------------------------------------------------------------------------ */

/* LCD Addresses --------------------------------------------------------------- */
#define LCDrDUMMYADDR      (0x80170010)
#define LCDrCTRLAddr    (0x30000000)    /* Control Command LCD Address */
#define LCDrDATAAddr    (0x3000000f)    /* Data LCD Address */

// LCD Dimensions --------------------------------------------------------------
//------- Variables
#define LCDrWIDTH          120  /* X axis */
#define LCDrHEIGHT         160  /* Y Axis */
#define MAXROWS         LCDrHEIGHT
#define MAXCOL          LCDrWIDTH

/* LCD Command Words -----------LCDr------------------------------------------------ */
#define  LCDrDISON          0xaf        /* Display ON */
#define  LCDrDISOFF         0xae        /* Display OFF */
#define  LCDrDISNOR         0xa6        /* Display Normal */
#define  LCDrDISINV         0xa7        /* Display Inverse */
#define  LCDrCOMSCN         0xbb        /* Comman Scan Direction */
#define  LCDrDISCTL         0xca        /* Display Control */
#define  LCDrSLPIN          0x95        /* Sleep IN */
#define  LCDrSLPOUT         0x94        /* Sleep Out */
#define  LCDrPASET          0x75        /* Page Address Set */
#define  LCDrCASET          0x15        /* Column Address Set */
#define  LCDrDATCTL         0xbc        /* Data Control */
#define  LCDrDATALL         0xbd        /* Data ALL */
#define  LCDrDATCAN         0xbe        /* Data ALL Cancel */
#define  LCDrRGBSET8        0xce        /* 8 bit colour mode */
#define  LCDrRAMWR          0x5c        /* RAM Write */
#define  LCDrRAMRD          0x5d        /* RAM Read */
#define  LCDrPTLIN          0xa8        /* Partial IN */
#define  LCDrPTLOUT         0xa9        /* Partiel Out */
#define  LCDrRMWIN          0xe0        /* Read Modify IN */
#define  LCDrRMWOUT         0xee        /* Read Modify Out */
#define  LCDrASCSET         0xaa        /* Area Scroll Set */
#define  LCDrSCSTART        0xab        /* Scroll Start */
#define  LCDrOSCON          0xd1        /* Oscillator ON */
#define  LCDrOSCOFF         0xd2        /* Oscillator OFF */
#define  LCDrPWRCTR         0x20        /* Power Control */
#define  LCDrVOLCTR         0x81        /* Voltage Control */
#define  LCDrTMPGRD         0x82        /* Temperature Gradiant */

#define  LCDrVOLUP          0xd6        /* Voltage Increment */
#define  LCDrVOLDOWN        0xd7        /* Voltage Decrement */
#define  LCDrEPCTIN         0xcd        /* EEPROM Control */
#define  LCDrEPCOUT         0xcc        /* Cancel EEPROM Command */
#define  LCDrEPMWR          0xfc        /* EEPROM Write */
#define  LCDrEPMRD          0xfd        /* EEPROM Read */
#define  LCDrEPSRRD1        0x7c        /* Read Register */
#define  LCDrEPSRRD2        0x7d        /* Read Register */
#define  LCDrNOP            0x25        /* No Operation */

/* -----------------------------------------------------------------------------
   Following are the Software MACROS and Routines  
   ------------------------------------------------------------------------------ */

/***************************************************************************** 
* Define
*****************************************************************************/
#define  LCDrDISCTL_128DUTY      0x1f
#define  LCDrDISCTL_160DUTY      0x27
#define  LCDrDISCTL_11H          0x0a
#define  LCDrDISCTL_13H          0x0c
#define  LCDrCENTERSCROLL        0x00
#define  LCDrTOPSCROLL           0x01
#define  LCDrBOTTOMSCROLL        0x02
#define  LCDrALLSCROLL           0x03

/***************************************************************************** 
* Typedef 
*****************************************************************************/
typedef unsigned char uint8;
typedef signed char int8;
typedef unsigned short int uint16;
typedef signed short int int16;
typedef unsigned int uint32;
typedef signed int int32;

/***************************************************************************** 
* Define
*****************************************************************************/
#define LCDrdelay()                          \
{                                            \
   uint16 _stat;                             \
   _stat = *(volatile uint16 *)LCDrDUMMYADDR;\
   _stat = *(volatile uint16 *)LCDrDUMMYADDR;\
   _stat = *(volatile uint16 *)LCDrDUMMYADDR;\
   _stat = *(volatile uint16 *)LCDrDUMMYADDR;\
}

#define LCDrCtrlWrite(_data)                \
{                                           \
   *(volatile uint16 *)LCDrCTRLAddr = _data;\
   LCDrdelay();                             \
}

#define LCDrDataWrite(_data)                \
{                                           \
   *(volatile uint16 *)LCDrDATAAddr = _data;\
   LCDrdelay();                             \
}

#define LCDrRAMWrite(_data)                 \
{                                           \
   *(volatile uint16 *)LCDrDATAAddr = _data;\
   LCDrdelay();                             \
}

#define LCDrRAMRead(_data)                  \
{                                           \
   _data = *(volatile uint16 *)LCDrDATAAddr;\
   LCDrdelay();                             \
}

#define LCDrDISPON()       LCDrCtrlWrite(LCDrDISON)
#define LCDrDISPOFF()      LCDrCtrlWrite(LCDrDISOFF)
#define LCDrNORMAL()       LCDrCtrlWrite(LCDrDISNOR)
#define LCDrINVERSE()      LCDrCtrlWrite(LCDrDISINV)

#define LCDrGENSLPIN()     LCDrCtrlWrite(LCDrSLPIN)
#define LCDrGENSLPOUT()    LCDrCtrlWrite(LCDrSLPOUT)

#define LCDrSetDATALL()      \
{                            \
   LCDrCtrlWrite(LCDrDATALL);\
   LCDrDataWrite(0x01);      \
}
#define LCDrCancelDATALL() LCDrCtrlWrite(LCDrDATCAN)

#define LCDrWrStart()      LCDrCtrlWrite(LCDrRAMWR)
#define LCDrRdStart()      LCDrCtrlWrite(LCDrRAMRD)

#define LCDrCtrlVOLUP()    LCDrCtrlWrite(LCDrVOLUP)
#define LCDrCtrlVOLDOWN()  LCDrCtrlWrite(LCDrVOLDOWN)

#define LCDrCTRLOSCON()    LCDrCtrlWrite(LCDrOSCON)
#define LCDrCTRLOSCOFF()   LCDrCtrlWrite(LCDrOSCOFF)

/***************************************************************************** 
* Extern Global Function
*****************************************************************************/

extern void LCDrINIT(void);
extern void LCDrSETCOMSCAN(void);
extern void LCDrDISCONTROL(void);
extern void LCDrSetDATANORCTL(void);
extern void LCDrVOLTLEVEL(uint8 voltage);
extern void LCDrTEMPERATUREGRAD(void);
extern void LCDrPOWERCNTL(uint8 data);

extern void LCDrSetPageAddr(uint8 startPage, uint8 endPage);
extern void LCDrSetColAddr(uint8 startColumn, uint8 endColumn);

extern void LCDrDISPartial(uint8 startBlock, uint8 endBlock);
extern void LCDrDISPartialExit(void);

extern void LCDrConfAREAScroll(uint8 topBlock, uint8 bottomBlock, uint8 noOfBlocks, uint8 areaMode);
extern void LCDrScrollStart(uint8 startBlock);

extern void LCDrClearAll(void);
extern void LCDrblockClear(uint16 x1, uint16 y1, uint16 x2, uint16 y2);
extern void LCDrblockRead(uint16 x1, uint16 y1, uint16 x2, uint16 y2);
extern void LCDrBlockWrite(uint16 x1, uint16 y1, uint16 x2, uint16 y2);

extern void LCDrDrawRectangle(uint16 x1, uint16 y1, uint16 x2, uint16 y2, uint16 data);

extern void LCDrSize(uint16 *outLCDWidth, uint16 *outLCDHeight);

extern void LCDrTest(void);
extern void LCDrTestColours(void);

/*----------------------------------------------------------------------------------------
                        End of File LcdDr.h  
-----------------------------------------------------------------------------------------*/
#endif /* _LCDDR_H_ */ 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -