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 |