| Full Description  This graphics lcd controller library was originally developed to drive the UC1601 Ultra low power Controller Driver, which consists of 65 COM and 128 SEG drivers. Currently developed for Texas Instruments C2000 platform, but could easily be modified for any embedded platform.
 With the aid of a font and graphics generation tool, which comes with the driver library , users can show text in any font at any size as well as displaying any chosen graphics or images. RLE compressed font and graphics data ensure very low embedded memory requirement.
 
 Techniques like auto increment page and column addresses , and virtual memory writing have reduced the bus traffic significantly and ensure very fast data writing to the lcd driver. Brightness is easily adjusted using software commands. Lcd mapping is also controlled using commands which ensures compatibility with any lcd manufacture’s product which use 1601 driver.
 
 Overview of Embedded LCD driver LCD Driver Software features
 
 Ability to display any font or graphics by using a font and graphics generation tool with RLE compress data.
 
 Ability to drawing real time graphs or bar charts of any size.
 
 Fast lcd data writing and less bus traffic by using techniques like virtual lcd buffer and auto increment page and column addresses.
 
 Software controlled Reset, Page and Column Auto increment , Brightness control and Mapping control features.
 Performance Parameters Code space requirements 3kB Ram requirements 0.5-1kB (Depends on display size) Embedded LCD driver Application Programming Interface void Gpio_select(void) This function initializes the GPIO pins relevant to the  LCD interface. void WriteData(Uint16  data) This function writes one data page into LCD  Parameters : data  - One page data in LCD void WriteCommand (Uint16  command) This function writes a command into LCD Parameters: command - LCD commands for UC1601 controller void InitPort(void) This function configures the port for communictaion with the the LCD ( such as bus mode selection etc.. ) void InitLcd(scrBuffer* b) This function sets initial condition on the LCD ( eg. Setting contrast , refresh rate , clear all the pixels.. etc ) Parameters : b - pointer to a structure which mainly consisting of a 2D virtual LCD array ( size of array equal to Num. of  Column * Num. of Pages) void LcdReset(void) This function Reset the LCD void LcdClear (scrBuffer* b) This function clears the LCD screen Parameters : b - as above void scrPageAddressSet(Uint16 pageAddr) This funtion sets a particular page address in LCD Parameters : pageAddr - page number void scrColumnAddressSet(Uint16 colAddr) This function sets a particular column address  in LCD Parameters : colAddr - column number void scrVirtualDisplayWrite(Uint16  x , Uint16  y , scrBuffer *b) This function turns on a pixel in a virtual LCD 2D array Parameters : x - x cordinate of the pixel to turn on              Y - y cordinate of the pixel, which we want to on               b - as above void scrFlushPendingWrite(scrBuffer* b ) This function writes all the data in the virtual LCD 2D array to the LCD.     Parameters : b - as above void scrDrawLine(Uint16  x1 ,Uint16  y1 , Uint16 x2, Uint16  y2 ,scrBuffer* b) This function draws a line , between two points Parameters : x1 - x coordinate of first point  y1 - y coordinate of first point              x2 - x coordinate of second point  y2 - y coordinate of second point   b - as above   void scrDrawRect(Uint16 upperLeft_x , Uint16  upperLeft_y , Uint16  rightBottom_x, Uint16  rightBottom_y , scrBuffer* b) This function Draw a empty rectangle , configured using two diagonal points. Parameters : upperLeft_x - x coordinate of upper left point              upperLeft_y - y coordinate of upper left point              rightBottom_x - x coordinate of right bottom point              rightBottom_y - y coordinate of right bottom point              b - as above       void scrFillRect(Uint16 upperLeft_x , Uint16  upperLeft_y , Uint16  rightBottom_x, Uint16  rightBottom_y , scrBuffer* b) This function draws a solid rectangle, configured by setting diagonal points Parameters : upperLeft_x - x coordinate of upper left point              upperLeft_y - y coordinate of upper left point              rightBottom_x - x coordinate of right bottom point              rightBottom_y - y coordinate of right bottom point              b - as above   void scrDrawGraph( float data, Uint16 upperLeft_x , Uint16  upperLeft_y , Uint16  rightBottom_x, Uint16  rightBottom_y , scrBuffer* b) This function draws a moving graph within given boundry co-ordinates Parameters : data - Current data value upperLeft_x - x coordinate of upper left point of graph             upperLeft_y - y coordinate of upper left point of graph             rightBottom_x - x coordinate of right bottom point of graph             rightBottom_y - y coordinate of right bottom point of graph              b - as above   void scrDrawText( char* text, Uint16  x, Uint16  y, Uint16  fontSize , scrBuffer* b) This function displays text on the LCD Parameters : text - pointer to the string buffer             x - starting x coordinate of string on LCD             y - starting y coordinate of string on LCD             fontSize - size of the font to draw             b - as above   void scrDrawBmp(Uint16* bmpData , Uint16 initX , Uint16 initY , Uint16 width ,  Uint16 height, scrBuffer* b) This function draw a image on LCD of a given width and height Parameters : bmpData - pointer to the image data array             initX - starting x position of  image             initY - starting y position of image             width - width of the image to draw             height - height of the image to draw             b - as above   |