A C12832 LCD with generic interface
Dependents: mbed_blinky HTTPClient_HelloWorld websocketandnode xbeerx ... more
Fork of C12832 by
Diff: C12832.h
- Revision:
- 17:1c3011afe95d
- Parent:
- 16:7de323fa46fe
--- a/C12832.h Wed Feb 05 14:25:16 2014 +0000 +++ b/C12832.h Mon Mar 17 19:47:39 2014 +0000 @@ -19,9 +19,10 @@ #include "GraphicsDisplay.h" -/** optional Defines : - * #define debug_lcd 1 enable infos to PC_USB - */ +/** + * Optional Defines: + * #define debug_lcd 1 enable infos to PC_USB + */ // some defines for the DMA use #define DMA_CHANNEL_ENABLE 1 @@ -35,184 +36,191 @@ #define DMA_DEST_SSP1_TX (2UL << 6) #define DMA_DEST_SSP0_TX (0UL << 6) -/** Draw mode - * NORMAl - * XOR set pixel by xor the screen - */ +/** + * Draw mode + * NORMAL + * XOR set pixel by xor the screen + */ enum {NORMAL,XOR}; -/** Bitmap +/** + * Bitmap */ struct Bitmap{ int xSize; int ySize; int Byte_in_Line; char* data; - }; +}; +/** + * The C12832 class + */ class C12832 : public GraphicsDisplay { public: - /** Create a C12832 object connected to SPI1 - * - */ - + /** + * Create a C12832 object connected to SPI1 + */ C12832(PinName mosi, PinName sck, PinName reset, PinName a0, PinName ncs, const char* name = "LCD"); - - /** Get the width of the screen in pixel - * - * @param - * @returns width of screen in pixel - * - */ + /** + * Get the width of the screen in pixel + * + * @returns width of screen in pixel + * + */ virtual int width(); - /** Get the height of the screen in pixel + /** + * Get the height of the screen in pixel * * @returns height of screen in pixel - * */ virtual int height(); - /** Draw a pixel at x,y black or white + /** + * Draw a pixel at x,y black or white * * @param x horizontal position * @param y vertical position - * @param colour ,1 set pixel ,0 erase pixel + * @param color - 1 set pixel, 0 erase pixel */ virtual void pixel(int x, int y,int colour); - /** draw a circle + /** + * Draw a circle * * @param x0,y0 center * @param r radius - * @param colour ,1 set pixel ,0 erase pixel - * + * @param color - 1 set pixel, 0 erase pixel */ void circle(int x, int y, int r, int colour); - /** draw a filled circle + /** + * Draw a filled circle * * @param x0,y0 center * @param r radius - * @param color ,1 set pixel ,0 erase pixel + * @param color - 1 set pixel, 0 erase pixel * - * use circle with different radius, - * can miss some pixel + * Use circle with different radius, + * Can miss some pixels */ void fillcircle(int x, int y, int r, int colour); - /** draw a 1 pixel line - * - * @param x0,y0 start point - * @param x1,y1 stop point - * @param color ,1 set pixel ,0 erase pixel - * - */ + /** + * Draw a 1 pixel line + * + * @param x0,y0 start point + * @param x1,y1 stop point + * @param color - 1 set pixel, 0 erase pixel + */ void line(int x0, int y0, int x1, int y1, int colour); - /** draw a rect - * - * @param x0,y0 top left corner - * @param x1,y1 down right corner - * @param color 1 set pixel ,0 erase pixel - * * - */ + /** + * Draw a rect + * + * @param x0,y0 top left corner + * @param x1,y1 down right corner + * @param color - 1 set pixel, 0 erase pixel + */ void rect(int x0, int y0, int x1, int y1, int colour); - /** draw a filled rect - * - * @param x0,y0 top left corner - * @param x1,y1 down right corner - * @param color 1 set pixel ,0 erase pixel - * - */ + /** + * Draw a filled rect + * + * @param x0,y0 top left corner + * @param x1,y1 down right corner + * @param color - 1 set pixel, 0 erase pixel + */ void fillrect(int x0, int y0, int x1, int y1, int colour); - /** copy display buffer to lcd - * - */ - + /** + * Copy display buffer to LCD + */ void copy_to_lcd(void); - /** set the orienation of the screen - * - */ - + /** + * Set the orienation of the screen + */ void set_contrast(unsigned int o); - /** read the contrast level - * - */ + /** + * Read the contrast level + */ unsigned int get_contrast(void); - - /** invert the screen - * - * @param o = 0 normal, 1 invert - */ + /** + * Invert the screen + * + * @param o = 0 normal, 1 invert + */ void invert(unsigned int o); - /** clear the screen - * - */ + /** + * Clear the screen + */ virtual void cls(void); - /** set the drawing mode - * - * @param mode NORMAl or XOR - */ - + /** + * Set the drawing mode + * + * @param mode NORMAl or XOR + */ void setmode(int mode); virtual int columns(void); - /** calculate the max number of columns + /** + * Calculate the max number of columns. + * Depends on actual font size * * @returns max column - * depends on actual font size - * */ virtual int rows(void); - /** put a char on the screen + /** + * Put a char on the screen * * @param value char to print * @returns printed char - * */ virtual int _putc(int value); - /** draw a character on given position out of the active font to the LCD + /** + * Draw a character on given position out of the active font to the LCD * * @param x x-position of char (top left) * @param y y-position * @param c char to print - * */ virtual void character(int x, int y, int c); - /** setup cursor position + /** + * Setup cursor position * * @param x x-position (top left) * @param y y-position */ virtual void locate(int x, int y); - /** setup auto update of screen - * - * @param up 1 = on , 0 = off - * if switched off the program has to call copy_to_lcd() - * to update screen from framebuffer - */ + /** + * Setup auto update of screen + * + * @param up 1 = on , 0 = off + * + * if switched off the program has to call copy_to_lcd() + * to update screen from framebuffer + */ void set_auto_up(unsigned int up); - /** get status of the auto update function - * - * @returns if auto update is on - */ + /** + * Get status of the auto update function + * + * @returns if auto update is on + */ unsigned int get_auto_up(void); /** Vars */ @@ -224,69 +232,69 @@ unsigned int draw_mode; - /** select the font to use - * - * @param f pointer to font array - * - * font array can created with GLCD Font Creator from http://www.mikroe.com - * you have to add 4 parameter at the beginning of the font array to use: - * - the number of byte / char - * - the vertial size in pixel - * - the horizontal size in pixel - * - the number of byte per vertical line - * you also have to change the array to char[] - * - */ + /** + * Select the font to use + * + * @param f pointer to font array + * + * font array can created with GLCD Font Creator from http://www.mikroe.com + * you have to add 4 parameter at the beginning of the font array to use: + * - the number of byte / char + * - the vertial size in pixel + * - the horizontal size in pixel + * - the number of byte per vertical line + * you also have to change the array to char[] + */ void set_font(unsigned char* f); - /** print bitmap to buffer - * - * @param bm Bitmap in flash - * @param x x start - * @param y y start - * - */ - + /** + * Print bitmap to buffer + * + * @param bm Bitmap in flash + * @param x x start + * @param y y start + */ void print_bm(Bitmap bm, int x, int y); protected: - /** draw a horizontal line - * - * @param x0 horizontal start - * @param x1 horizontal stop - * @param y vertical position - * @param ,1 set pixel ,0 erase pixel - * - */ + /** + * Draw a horizontal line + * + * @param x0 horizontal start + * @param x1 horizontal stop + * @param y vertical position + * @param color - 1 set pixel, 0 erase pixel + */ void hline(int x0, int x1, int y, int colour); - /** draw a vertical line + /** + * Draw a vertical line * * @param x horizontal position * @param y0 vertical start * @param y1 vertical stop - * @param ,1 set pixel ,0 erase pixel + * @param color - 1 set pixel, 0 erase pixel */ void vline(int y0, int y1, int x, int colour); - /** Init the C12832 LCD controller - * + /** + * Init the C12832 LCD controller */ void lcd_reset(); - /** Write data to the LCD controller + /** + * Write data to the LCD controller * * @param dat data written to LCD controller - * */ void wr_dat(unsigned char value); - /** Write a command the LCD controller - * - * @param cmd: command to be written - * - */ + /** + * Write a command the LCD controller + * + * @param cmd: command to be written + */ void wr_cmd(unsigned char value); void wr_cnt(unsigned char cmd);