Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
SSD1306-Library.h
00001 /* 00002 * SSD1306-Libary.h 00003 * 00004 * Created on: Jan 1, 2017 00005 * Author: johnsone 00006 */ 00007 00008 #ifndef SOURCE_SSD1306_LIBARY_H_ 00009 #define SOURCE_SSD1306_LIBARY_H_ 00010 00011 #include "Adafruit_GFX.h" 00012 00013 #include <stdint.h> 00014 00015 #define SSD1306_LCDWIDTH 128 00016 #define SSD1306_LCDHEIGHT 64 00017 00018 #define BLACK 0 00019 #define WHITE 1 00020 #define INVERSE 2 00021 00022 #define SSD1306_SETCONTRAST 0x81 00023 #define SSD1306_DISPLAYALLON_RESUME 0xA4 00024 #define SSD1306_DISPLAYALLON 0xA5 00025 #define SSD1306_NORMALDISPLAY 0xA6 00026 #define SSD1306_INVERTDISPLAY 0xA7 00027 #define SSD1306_DISPLAYOFF 0xAE 00028 #define SSD1306_DISPLAYON 0xAF 00029 00030 #define SSD1306_SETDISPLAYOFFSET 0xD3 00031 #define SSD1306_SETCOMPINS 0xDA 00032 00033 #define SSD1306_SETVCOMDETECT 0xDB 00034 00035 #define SSD1306_SETDISPLAYCLOCKDIV 0xD5 00036 #define SSD1306_SETPRECHARGE 0xD9 00037 00038 #define SSD1306_SETMULTIPLEX 0xA8 00039 00040 #define SSD1306_SETLOWCOLUMN 0x00 00041 #define SSD1306_SETHIGHCOLUMN 0x10 00042 00043 #define SSD1306_SETSTARTLINE 0x40 00044 00045 #define SSD1306_MEMORYMODE 0x20 00046 #define SSD1306_COLUMNADDR 0x21 00047 #define SSD1306_PAGEADDR 0x22 00048 00049 #define SSD1306_COMSCANINC 0xC0 00050 #define SSD1306_COMSCANDEC 0xC8 00051 00052 #define SSD1306_SEGREMAP 0xA0 00053 00054 #define SSD1306_CHARGEPUMP 0x8D 00055 00056 // Scrolling #defines 00057 #define SSD1306_ACTIVATE_SCROLL 0x2F 00058 #define SSD1306_DEACTIVATE_SCROLL 0x2E 00059 #define SSD1306_SET_VERTICAL_SCROLL_AREA 0xA3 00060 #define SSD1306_RIGHT_HORIZONTAL_SCROLL 0x26 00061 #define SSD1306_LEFT_HORIZONTAL_SCROLL 0x27 00062 #define SSD1306_VERTICAL_AND_RIGHT_HORIZONTAL_SCROLL 0x29 00063 #define SSD1306_VERTICAL_AND_LEFT_HORIZONTAL_SCROLL 0x2A 00064 00065 00066 class SSD1306 : public Adafruit_GFX { 00067 public: 00068 SSD1306(int16_t w=SSD1306_LCDWIDTH, int16_t h=SSD1306_LCDHEIGHT); 00069 00070 void drawPixel(int16_t x, int16_t y, uint16_t color); 00071 00072 void hw_setup(); 00073 00074 void begin(bool reset=true); 00075 void display(void); 00076 00077 void clearDisplay(void); 00078 void invertDisplay(uint8_t i); 00079 void startscrollleft(uint8_t start, uint8_t stop); 00080 void startscrollright(uint8_t start, uint8_t stop); 00081 void startscrolldiagright(uint8_t start, uint8_t stop); 00082 void startscrolldiagleft(uint8_t start, uint8_t stop); 00083 void stopscroll(void); 00084 void dim(bool dim); 00085 void drawFastHLine(int16_t x, int16_t y, int16_t w, uint16_t color); 00086 void drawFastVLine(int16_t x, int16_t y, int16_t h, uint16_t color); 00087 00088 00089 protected: 00090 int16_t 00091 _width, _height; // Display w/h as modified by current rotation 00092 00093 uint8_t 00094 textsize, 00095 rotation; 00096 00097 private: 00098 void _sendData(const uint8_t *blk, uint32_t len, bool isData); 00099 void sendCommands(const uint8_t *blk, uint32_t len); 00100 void sendData(const uint8_t *blk, uint32_t len); 00101 00102 //void ssd1306_command(uint8_t c); 00103 00104 void drawFastHLineInternal(int16_t x, int16_t y, int16_t w, uint16_t color); 00105 void drawFastVLineInternal(int16_t x, int16_t __y, int16_t __h, uint16_t color); 00106 00107 void _scroll(uint8_t mode, uint8_t start, uint8_t stop); 00108 }; 00109 00110 00111 00112 #endif /* SOURCE_SSD1306_LIBARY_H_ */
Generated on Wed Jul 13 2022 16:35:49 by
1.7.2