A class for managing SSD1306 controlled LCD´s (cheap 128x64 models, 0.96'')
Dependents: mbed_ssd1306 USB_meter_SD_file_number_filtro_for EscanerRf escaner_RTOS ... more
Diff: ssd1306.h
- Revision:
- 6:cff0e772910f
- Parent:
- 5:4f7cdc2ee49a
- Child:
- 7:b0e7ccc9138b
--- a/ssd1306.h Wed Nov 01 16:32:22 2017 +0000 +++ b/ssd1306.h Wed Nov 01 16:43:48 2017 +0000 @@ -65,6 +65,9 @@ class SSD1306 { public: + /** + * PlotStyle. Defines how pixels being plotted interact with existing pixels on the screen + */ enum PlotStyle { Normal, @@ -72,6 +75,9 @@ Xor }; + /** + * I2CSpeed. Defines the speed of the I2C bus + */ enum I2CSpeed { Slow, @@ -79,116 +85,132 @@ Fast }; - /** Creates an instance of a SSD1306 driver, specifying I2C pins to use - * - * @param sda I2C data line pin - * @param scl I2C clock line pin - */ + /** + * Creates an instance of a SSD1306 driver, specifying I2C pins to use + * + * @param sda I2C data line pin + * @param scl I2C clock line pin + */ SSD1306 (PinName sda, PinName scl, char ssd1306_addr = 0x78); - /** Creates an instance of a SSD1306 driver using an existing I2C object - * - * @param busi2c I2C object - * @param ssd1306_addr I2C addr of SSD1306 controller - */ + /** + * Creates an instance of a SSD1306 driver using an existing I2C object + * + * @param busi2c I2C object + * @param ssd1306_addr I2C addr of SSD1306 controller + */ SSD1306 (I2C &busi2c, char ssd1306_addr = 0x78); - /** Set the frequency of the I2C interface - * - * @param hz The bus frequency in hertz - */ + /** + * Set the frequency of the I2C interface + * + * @param hz The bus frequency in hertz + */ void speed (I2CSpeed spd); - /** Initialize the SSD1306 controller - */ + /** + * Initialize the SSD1306 controller + */ int init (void); - /** Scrolls up one text line - * - * @param refresh (optional) Force an actual screen redraw after scrolling - */ + /** + * Scrolls up one text line + * + * @param refresh (optional) Force an actual screen redraw after scrolling + */ void scroll (bool refresh=false); - /** Print a character at the current text position. Updates the text position and forces a scroll if at the end of the screen - * - * @param c ASCII code of the character to print (8-bit ASCII code, use original IBM code page 437. No control codes. - * @param refresh (optional) Force an actual screen redraw after scrolling - */ + /** + * Print a character at the current text position. Updates the text position and forces a scroll if at the end of the screen + * + * @param c ASCII code of the character to print (8-bit ASCII code, use original IBM code page 437. No control codes. + * @param refresh (optional) Force an actual screen redraw after scrolling + */ void putchar (char c, bool refresh=false); - /** Prints a NUL terminated string - * - * @param s C-style string (NUL terminated) to print. - * @param refresh (optional) Force an actual screen redraw after scrolling - */ + /** + * Prints a NUL terminated string + * + * @param s C-style string (NUL terminated) to print. + * @param refresh (optional) Force an actual screen redraw after scrolling + */ void puts (char *s, bool refresh=false); - /** printf interface to SSD1306 controller - * - * @param fmt Format string. - */ + /** + * printf interface to SSD1306 controller + * + * @param fmt Format string. + */ void printf (const char *fmt,...); - /** Change the text position - * - * @param row Text row (0-7) to print the next character - * @param column Text column (0-15) to print the next character - */ + /** + * Change the text position + * + * @param row Text row (0-7) to print the next character + * @param column Text column (0-15) to print the next character + */ void locate (char row, char column); - /** Redraw the physical display, sending the content of the display memory to the SSD1306 controller using the I2C bus - */ + /** + * Redraw the physical display, sending the content of the display memory to the SSD1306 controller using the I2C bus + */ void display (void); - /** Changes the contrast (actually, pixel brightness) of the screen - * - * @param v Contrast level (0-255) - */ + /** + * Changes the contrast (actually, pixel brightness) of the screen + * + * @param v Contrast level (0-255) + */ void set_contrast (char v); - /** Clear screen and optionally, fills it with a predefined picture (in 128x64 OLED format, see display datasheet). Also resets the text position. - * - * @param bkground If not NULL, should point to a 1024 byte buffer with the image to load to the display - * @param refresh (optional) Force an actual screen redraw after scrolling - */ + /** + * Clear screen and optionally, fills it with a predefined picture (in 128x64 OLED format, see display datasheet). Also resets the text position. + * + * @param bkground If not NULL, should point to a 1024 byte buffer with the image to load to the display + * @param refresh (optional) Force an actual screen redraw after scrolling + */ void cls (char *bkground=NULL, bool refresh=false); - /** Plots a pixel. - * - * @param x x-coordinate (0-127) of the pixel. X coordinates go left to right. - * @param y y-coordinate (0-63) of the pixel. Y coordinates go up to down. - * @param mode. Plot style mode: Normal (pixel is drawn), Inverse (pixel is erased), or Xor (pixel is erased if background position is already set, otherwise is drawn) - * @param refresh (optional) Force an actual screen redraw after scrolling - */ + /** + * Plots a pixel. + * + * @param x x-coordinate (0-127) of the pixel. X coordinates go left to right. + * @param y y-coordinate (0-63) of the pixel. Y coordinates go up to down. + * @param mode. Plot style mode: Normal (pixel is drawn), Inverse (pixel is erased), or Xor (pixel is erased if background position is already set, otherwise is drawn) + * @param refresh (optional) Force an actual screen redraw after scrolling + */ void plot (char x, char y, PlotStyle mode, bool refresh=false); - /** Returns the state of a pixel coordinate from screen - * - * @param x x-coordinate (0-127) of the pixel. X coordinates go left to right. - * @param y y-coordinate (0-63) of the pixel. Y coordinates go up to down. - * @return true if the pixel was set, or false otherwise - */ + /** + * Returns the state of a pixel coordinate from screen + * + * @param x x-coordinate (0-127) of the pixel. X coordinates go left to right. + * @param y y-coordinate (0-63) of the pixel. Y coordinates go up to down. + * @return true if the pixel was set, or false otherwise + */ bool point (char x, char y); - /** Draws a line using the Bresenham algorithm - * - * @param x0 x-coordinate (0-127) of the starting point - * @param y0 y-coordinate (0-63) of the starting point - * @param x1 x-coordinate (0-127) of the ending point - * @param y1 y-coordinate (0-63) of the ending point - * @param mode. Plot style mode: Normal (pixel is drawn), Inverse (pixel is erased), or Xor (pixel is erased if background position is already set, otherwise is drawn) - * @param refresh (optional) Force an actual screen redraw after scrolling - */ + /** + * Draws a line using the Bresenham algorithm + * + * @param x0 x-coordinate (0-127) of the starting point + * @param y0 y-coordinate (0-63) of the starting point + * @param x1 x-coordinate (0-127) of the ending point + * @param y1 y-coordinate (0-63) of the ending point + * @param mode. Plot style mode: Normal (pixel is drawn), Inverse (pixel is erased), or Xor (pixel is erased if background position is already set, otherwise is drawn) + * @param refresh (optional) Force an actual screen redraw after scrolling + */ void line (char x0, char y0, char x1, char y1, PlotStyle mode, bool refresh=false); - /** Draws a circle - * - * @param x0 x-coordinate (0-127) of the center point - * @param y0 y-coordinate (0-63) of the center point - * @param r radius of the circle - * @param mode. Plot style mode: Normal (pixel is drawn), Inverse (pixel is erased), or Xor (pixel is erased if background position is already set, otherwise is drawn) - * @param refresh (optional) Force an actual screen redraw after scrolling - */ + /** + * Draws a circle + * + * @param x0 x-coordinate (0-127) of the center point + * @param y0 y-coordinate (0-63) of the center point + * @param r radius of the circle + * @param mode. Plot style mode: Normal (pixel is drawn), Inverse (pixel is erased), or Xor (pixel is erased if background position is already set, otherwise is drawn) + * @param refresh (optional) Force an actual screen redraw after scrolling + */ void circle (char x0, char y0, char r, PlotStyle mode, bool refresh=false); virtual ~SSD1306 () {