2013-01-08 22:40:58 +08:00
|
|
|
/*************************************************************************
|
|
|
|
*
|
|
|
|
* Used with ICCARM and AARM.
|
|
|
|
*
|
|
|
|
* (c) Copyright IAR Systems 2008
|
|
|
|
*
|
|
|
|
* File name : drv_glcd.h
|
|
|
|
* Description : Graphical LCD driver include file
|
|
|
|
*
|
|
|
|
* History :
|
|
|
|
* 1. Date : 6, March 2008
|
|
|
|
* Author : Stanimir Bonev
|
|
|
|
* Description : Create
|
|
|
|
*
|
|
|
|
*
|
|
|
|
* $Revision: 24636 $
|
|
|
|
*
|
|
|
|
* @Modify: NXP MCU Application Team - NguyenCao
|
|
|
|
* @Date: 04. March. 2011
|
|
|
|
**************************************************************************/
|
|
|
|
#include "lpc_types.h"
|
|
|
|
|
|
|
|
#ifndef __GLCD_DRV_H
|
|
|
|
#define __GLCD_DRV_H
|
|
|
|
|
|
|
|
#ifndef EOF
|
|
|
|
#define EOF (-1)
|
|
|
|
#endif
|
|
|
|
|
|
|
|
typedef unsigned long U32;
|
|
|
|
typedef unsigned char U8;
|
|
|
|
typedef unsigned long Boolean;
|
|
|
|
/**
|
|
|
|
* @brief A struct for Bitmap on LCD screen
|
|
|
|
*/
|
2021-03-17 02:26:35 +08:00
|
|
|
typedef struct _Bmp_t
|
2013-01-08 22:40:58 +08:00
|
|
|
{
|
|
|
|
U32 H_Size;
|
|
|
|
U32 V_Size;
|
|
|
|
U32 BitsPP;
|
|
|
|
U32 BytesPP;
|
|
|
|
U32 *pPalette;
|
|
|
|
U32 *pPicStream;
|
|
|
|
U8 *pPicDesc;
|
|
|
|
} Bmp_t, *pBmp_t;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @brief A struct for Font Type on LCD screen
|
|
|
|
*/
|
2021-03-17 02:26:35 +08:00
|
|
|
|
|
|
|
typedef struct _FontType_t
|
2013-01-08 22:40:58 +08:00
|
|
|
{
|
|
|
|
U32 H_Size;
|
|
|
|
U32 V_Size;
|
|
|
|
U32 CharacterOffset;
|
|
|
|
U32 CharactersNuber;
|
|
|
|
U8 *pFontStream;
|
|
|
|
U8 *pFontDesc;
|
|
|
|
} FontType_t, *pFontType_t;
|
|
|
|
|
|
|
|
typedef U32 LdcPixel_t, *pLdcPixel_t;
|
|
|
|
|
|
|
|
#define C_GLCD_REFRESH_FREQ (60HZ)
|
|
|
|
#define C_GLCD_H_SIZE 480
|
2021-03-17 02:26:35 +08:00
|
|
|
#define C_GLCD_H_PULSE 2 //
|
|
|
|
#define C_GLCD_H_FRONT_PORCH 5 //
|
|
|
|
#define C_GLCD_H_BACK_PORCH 40 //
|
2013-01-08 22:40:58 +08:00
|
|
|
#define C_GLCD_V_SIZE 272
|
|
|
|
#define C_GLCD_V_PULSE 2
|
|
|
|
#define C_GLCD_V_FRONT_PORCH 8
|
|
|
|
#define C_GLCD_V_BACK_PORCH 8
|
|
|
|
|
|
|
|
#define C_GLCD_PWR_ENA_DIS_DLY 10000
|
|
|
|
#define C_GLCD_ENA_DIS_DLY 10000
|
|
|
|
|
|
|
|
//Cursor 64x64 pixels
|
|
|
|
#define CURSOR_H_SIZE 64
|
|
|
|
#define CURSOR_V_SIZE 64
|
|
|
|
//
|
|
|
|
#define CIRCLE_R 18
|
|
|
|
|
|
|
|
|
|
|
|
#define CRSR_PIX_32 0
|
|
|
|
#define CRSR_PIX_64 1
|
|
|
|
#define CRSR_ASYNC 0
|
|
|
|
#define CRSR_FRAME_SYNC 2
|
|
|
|
|
|
|
|
#define TEXT_DEF_TAB_SIZE 5
|
|
|
|
|
|
|
|
#define TEXT_BEL1_FUNC()
|
|
|
|
|
|
|
|
void GLCD_Init (void* VRAMBase);
|
|
|
|
void GLCD_SetPallet (const U32 * pPallete);
|
|
|
|
void GLCD_Ctrl (Bool bEna);
|
|
|
|
void GLCD_Cursor_Cfg(int Cfg);
|
|
|
|
void GLCD_Cursor_En(int cursor);
|
|
|
|
void GLCD_Cursor_Dis(int cursor);
|
|
|
|
void GLCD_Move_Cursor(int x, int y);
|
|
|
|
void GLCD_Copy_Cursor (const U32 *pCursor, int cursor, int size);
|
|
|
|
void GLCD_SetFont(pFontType_t pFont, LdcPixel_t Color, LdcPixel_t BackgndColor);
|
|
|
|
void GLCD_SetWindow(U32 X_Left, U32 Y_Up,
|
|
|
|
U32 X_Right, U32 Y_Down);
|
|
|
|
void GLCD_TextSetPos(U32 X, U32 Y);
|
|
|
|
void GLCD_TextSetTabSize(U32 Size);
|
|
|
|
static void LCD_SET_WINDOW (U32 X_Left, U32 X_Right,
|
|
|
|
U32 Y_Up, U32 Y_Down);
|
|
|
|
static void LCD_WRITE_PIXEL (U32 Pixel);
|
|
|
|
static Bool GLCD_TextCalcWindow (U32 * pXL, U32 * pXR,
|
|
|
|
U32 * pYU, U32 * pYD,
|
|
|
|
U32 * pH_Size, U32 * pV_Size);
|
|
|
|
void GLCD_LoadPic (U32 X_Left, U32 Y_Up, Bmp_t * pBmp, U32 Mask);
|
|
|
|
int _putchar (int c);
|
|
|
|
|
|
|
|
|
|
|
|
#endif // __GLCD_DRV_H
|