1*1664436fSMatthias Ringwald /******************************************************************************* 2*1664436fSMatthias Ringwald Filename: hal_lcd.h 3*1664436fSMatthias Ringwald 4*1664436fSMatthias Ringwald Copyright 2008 Texas Instruments, Inc. 5*1664436fSMatthias Ringwald ***************************************************************************/ 6*1664436fSMatthias Ringwald #ifndef HAL_LCD_H 7*1664436fSMatthias Ringwald #define HAL_LCD_H 8*1664436fSMatthias Ringwald 9*1664436fSMatthias Ringwald #ifndef MIN 10*1664436fSMatthias Ringwald #define MIN(n,m) (((n) < (m)) ? (n) : (m)) 11*1664436fSMatthias Ringwald #endif 12*1664436fSMatthias Ringwald 13*1664436fSMatthias Ringwald #ifndef MAX 14*1664436fSMatthias Ringwald #define MAX(n,m) (((n) < (m)) ? (m) : (n)) 15*1664436fSMatthias Ringwald #endif 16*1664436fSMatthias Ringwald 17*1664436fSMatthias Ringwald #ifndef ABS 18*1664436fSMatthias Ringwald #define ABS(n) (((n) < 0) ? -(n) : (n)) 19*1664436fSMatthias Ringwald #endif 20*1664436fSMatthias Ringwald 21*1664436fSMatthias Ringwald #define LCD_COMM_OUT P8OUT 22*1664436fSMatthias Ringwald #define LCD_COMM_DIR P8DIR 23*1664436fSMatthias Ringwald #define LCD_COMM_SEL P8SEL 24*1664436fSMatthias Ringwald #define LCD_BACKLIGHT_PIN BIT3 25*1664436fSMatthias Ringwald 26*1664436fSMatthias Ringwald #ifdef REV_02 27*1664436fSMatthias Ringwald #define LCD_CS_RST_DIR LCD_COMM_DIR 28*1664436fSMatthias Ringwald #define LCD_CS_RST_OUT LCD_COMM_OUT 29*1664436fSMatthias Ringwald #define LCD_CS_PIN BIT1 30*1664436fSMatthias Ringwald #define LCD_RESET_PIN BIT2 31*1664436fSMatthias Ringwald #else 32*1664436fSMatthias Ringwald #define LCD_CS_RST_DIR P9DIR 33*1664436fSMatthias Ringwald #define LCD_CS_RST_OUT P9OUT 34*1664436fSMatthias Ringwald #define LCD_CS_PIN BIT6 35*1664436fSMatthias Ringwald #define LCD_RESET_PIN BIT7 36*1664436fSMatthias Ringwald #endif 37*1664436fSMatthias Ringwald 38*1664436fSMatthias Ringwald #define LCD_ROW 110 39*1664436fSMatthias Ringwald #define LCD_COL 138 40*1664436fSMatthias Ringwald #define LCD_Size 3505 41*1664436fSMatthias Ringwald #define LCD_MEM_Size 110*17 42*1664436fSMatthias Ringwald #define LCD_Max_Column_Offset 0x10 43*1664436fSMatthias Ringwald 44*1664436fSMatthias Ringwald #define LCD_Last_Pixel 3505 45*1664436fSMatthias Ringwald 46*1664436fSMatthias Ringwald #define LCD_MEM_Row 0x11 47*1664436fSMatthias Ringwald #define LCD_Row 0x20 48*1664436fSMatthias Ringwald 49*1664436fSMatthias Ringwald // Grayscale level definitions 50*1664436fSMatthias Ringwald #define PIXEL_OFF 0 51*1664436fSMatthias Ringwald #define PIXEL_LIGHT 1 52*1664436fSMatthias Ringwald #define PIXEL_DARK 2 53*1664436fSMatthias Ringwald #define PIXEL_ON 3 54*1664436fSMatthias Ringwald 55*1664436fSMatthias Ringwald #define INVERT_TEXT BIT0 56*1664436fSMatthias Ringwald #define OVERWRITE_TEXT BIT2 57*1664436fSMatthias Ringwald 58*1664436fSMatthias Ringwald /*------------------------------------------------------------- 59*1664436fSMatthias Ringwald * Function Prototypes 60*1664436fSMatthias Ringwald * ------------------------------------------------------------*/ 61*1664436fSMatthias Ringwald void halLcdInit(void); 62*1664436fSMatthias Ringwald void halLcdShutDown(void); 63*1664436fSMatthias Ringwald void halLcdBackLightInit(void); 64*1664436fSMatthias Ringwald void halLcdSetBackLight(unsigned char BackLightLevel); 65*1664436fSMatthias Ringwald unsigned int halLcdGetBackLight(void); 66*1664436fSMatthias Ringwald void halLcdShutDownBackLight(void); 67*1664436fSMatthias Ringwald void halLcdSendCommand(unsigned char Data[]) ; 68*1664436fSMatthias Ringwald void halLcdSetContrast(unsigned char ContrastLevel); 69*1664436fSMatthias Ringwald unsigned char halLcdGetContrast(void); 70*1664436fSMatthias Ringwald void halLcdStandby(void); 71*1664436fSMatthias Ringwald void halLcdActive(void); 72*1664436fSMatthias Ringwald 73*1664436fSMatthias Ringwald //Move to specified LCD address 74*1664436fSMatthias Ringwald void halLcdSetAddress(int Address); 75*1664436fSMatthias Ringwald 76*1664436fSMatthias Ringwald //Draw at current segment location 77*1664436fSMatthias Ringwald void halLcdDrawCurrentBlock(unsigned int Value); 78*1664436fSMatthias Ringwald 79*1664436fSMatthias Ringwald //Draw at specified location by calling 80*1664436fSMatthias Ringwald //LCD_Set_Address(Address) & LCD_Draw_Current_Block( value ) 81*1664436fSMatthias Ringwald void halLcdDrawBlock(unsigned int Address, unsigned int Value); 82*1664436fSMatthias Ringwald 83*1664436fSMatthias Ringwald //Read value from LCD CGRAM 84*1664436fSMatthias Ringwald int halLcdReadBlock(unsigned int Address); 85*1664436fSMatthias Ringwald 86*1664436fSMatthias Ringwald //Clear LCD Screen 87*1664436fSMatthias Ringwald void halLcdClearScreen(void); 88*1664436fSMatthias Ringwald 89*1664436fSMatthias Ringwald //Invert black to white and vice versa 90*1664436fSMatthias Ringwald void halLcdReverse(void); 91*1664436fSMatthias Ringwald 92*1664436fSMatthias Ringwald // Draw a Pixel @ (x,y) with GrayScale level 93*1664436fSMatthias Ringwald void halLcdPixel( int x, int y, unsigned char GrayScale); 94*1664436fSMatthias Ringwald //Draw Line from (x1,y1) to (x2,y2) with GrayScale level 95*1664436fSMatthias Ringwald void halLcdLine( int x1, int y1, int x2, int y2, unsigned char GrayScale); 96*1664436fSMatthias Ringwald 97*1664436fSMatthias Ringwald void halLcdCircle(int x, int y, int Radius, int GrayScale); 98*1664436fSMatthias Ringwald 99*1664436fSMatthias Ringwald void halLcdImage(const unsigned int Image[], int Columns, int Rows, int x, int y); 100*1664436fSMatthias Ringwald void halLcdClearImage(int Columns, int Rows, int x, int y); 101*1664436fSMatthias Ringwald 102*1664436fSMatthias Ringwald //Print String of Length starting at current LCD location 103*1664436fSMatthias Ringwald void halLcdPrint( char String[], unsigned char TextStyle) ; 104*1664436fSMatthias Ringwald 105*1664436fSMatthias Ringwald //Print String of Length starting at (x,y) 106*1664436fSMatthias Ringwald void halLcdPrintXY(char String[], int x, int y, unsigned char TextStyle); 107*1664436fSMatthias Ringwald 108*1664436fSMatthias Ringwald //Print String of Length starting at (x,y) 109*1664436fSMatthias Ringwald void halLcdPrintLine(char String[], unsigned char Line, unsigned char TextStyle); 110*1664436fSMatthias Ringwald void halLcdPrintLineCol(char String[], unsigned char Line, unsigned char Col, unsigned char TextStyle); 111*1664436fSMatthias Ringwald 112*1664436fSMatthias Ringwald void halLcdCursor(void); 113*1664436fSMatthias Ringwald void halLcdCursorOff(void); 114*1664436fSMatthias Ringwald //Scroll a single row of pixels 115*1664436fSMatthias Ringwald void halLcdScrollRow(int y); 116*1664436fSMatthias Ringwald //Scroll a number of consecutive rows from yStart to yEnd 117*1664436fSMatthias Ringwald void halLcdHScroll(int yStart, int yEnd); 118*1664436fSMatthias Ringwald //Scroll a line of text 119*1664436fSMatthias Ringwald void halLcdScrollLine(int Line); 120*1664436fSMatthias Ringwald 121*1664436fSMatthias Ringwald #endif 122