33 #include <mraa/spi.hpp>
35 #include <mraa/gpio.hpp>
40 #define EBOLED_DEFAULT_SPI_BUS 0
41 #define EBOLED_DEFAULT_CD 36
42 #define EBOLED_DEFAULT_RESET 48
44 #define swap(a, b) { uint8_t t = a; a = b; b = t; }
73 const uint8_t COLOR_BLACK = 0x00;
74 const uint8_t COLOR_XOR = 0x02;
75 const uint8_t OLED_WIDTH = 0x40;
76 const uint8_t VERT_COLUMNS = 0x20;
77 const uint8_t OLED_HEIGHT = 0x30;
78 const int BUFFER_SIZE = 192;
84 CMD_SETLOWCOLUMN = 0x00,
85 CMD_EXTERNALVCC = 0x01,
86 CMD_SWITCHCAPVCC = 0x02,
87 CMD_SETHIGHCOLUMN = 0x10,
88 CMD_MEMORYADDRMODE = 0x20,
89 CMD_SETCOLUMNADDRESS = 0x21,
90 CMD_SETPAGEADDRESS = 0x22,
91 CMD_SETSTARTLINE = 0x40,
92 CMD_SETCONTRAST = 0x81,
93 CMD_CHARGEPUMP = 0x8d,
95 CMD_DISPLAYALLONRESUME = 0xa4,
96 CMD_DISPLAYALLON = 0xa5,
97 CMD_NORMALDISPLAY = 0xa6,
98 CMD_INVERTDISPLAY = 0xa7,
99 CMD_SETMULTIPLEX = 0xa8,
100 CMD_DISPLAYOFF = 0xae,
101 CMD_DISPLAYON = 0xaf,
102 CMD_SETPAGESTARTADDR = 0xb0,
103 CMD_COMSCANINC = 0xc0,
104 CMD_COMSCANDEC = 0xc8,
105 CMD_SETDISPLAYOFFSET = 0xd3,
106 CMD_SETDISPLAYCLOCKDIV = 0xd5,
107 CMD_SETPRECHARGE = 0xd9,
108 CMD_SETCOMPINS = 0xda,
109 CMD_SETVCOMDESELECT = 0xdb
122 EBOLED(
int spi=EBOLED_DEFAULT_SPI_BUS,
int CD=EBOLED_DEFAULT_CD,
123 int reset=EBOLED_DEFAULT_RESET);
147 mraa::Result
write(std::string msg);
157 mraa::Result
setCursor (
int row,
int column);
190 void drawChar (uint8_t x, uint8_t y, uint8_t data, uint8_t color, uint8_t size);
197 mraa::Result
clear();
199 void clearScreenBuffer();
216 void drawPixel (int8_t x, int8_t y, uint8_t color=COLOR_WHITE);
227 void drawLine (int8_t x0, int8_t y0, int8_t x1, int8_t y1, uint8_t color = COLOR_WHITE);
237 void drawLineHorizontal (int8_t x, int8_t y, uint8_t width, uint8_t color = COLOR_WHITE);
247 void drawLineVertical (int8_t x, int8_t y, uint8_t height, uint8_t color = COLOR_WHITE);
258 void drawRectangle (int8_t x, int8_t y, uint8_t width, uint8_t height, uint8_t color = COLOR_WHITE);
270 void drawRoundedRectangle(int8_t x, int8_t y, int8_t width, int8_t height, int16_t radius, uint8_t color);
281 void drawRectangleFilled (int8_t x, int8_t y, uint8_t width, uint8_t height, uint8_t color = COLOR_WHITE);
294 void drawTriangle (int8_t x0, int8_t y0, int8_t x1, int8_t y1, int8_t x2, int8_t y2, uint8_t color = COLOR_WHITE);
307 void drawTriangleFilled ( int8_t x0, int8_t y0, int8_t x1, int8_t y1, int8_t x2, int8_t y2, uint8_t color);
317 void drawCircle (int16_t x0, int16_t y0, int16_t radius, uint8_t color = COLOR_WHITE);
328 void drawRoundCorners( int8_t x0, int8_t y0, int16_t radius, uint8_t cornername, uint8_t color);
349 void drawRoundedCornersFilled(int8_t x0, int8_t y0, int16_t radius, uint8_t cornername, int16_t delta, uint8_t color);
360 mraa::Result command(uint8_t cmd);
361 mraa::Result data(uint16_t data);
362 mraa::Result writeChar(uint8_t value);
363 mraa::Result setAddressingMode(displayAddressingMode mode);
367 mraa::Gpio m_gpioRST;
void setTextWrap(uint8_t wrap)
Definition: eboled.cxx:176
mraa::Result write(std::string msg)
Definition: eboled.cxx:131
mraa::Result clear()
Definition: eboled.cxx:214
void drawTriangleFilled(int8_t x0, int8_t y0, int8_t x1, int8_t y1, int8_t x2, int8_t y2, uint8_t color)
Definition: eboled.cxx:353
void drawLineHorizontal(int8_t x, int8_t y, uint8_t width, uint8_t color=COLOR_WHITE)
Definition: eboled.cxx:303
void drawLine(int8_t x0, int8_t y0, int8_t x1, int8_t y1, uint8_t color=COLOR_WHITE)
Definition: eboled.cxx:262
void drawCircleFilled(int8_t x0, int8_t y0, int16_t radius, uint8_t color)
Definition: eboled.cxx:501
void drawCircle(int16_t x0, int16_t y0, int16_t radius, uint8_t color=COLOR_WHITE)
Definition: eboled.cxx:429
void setTextColor(uint8_t textColor)
Definition: eboled.cxx:168
mraa::Result setCursor(int row, int column)
Definition: eboled.cxx:162
void drawPixel(int8_t x, int8_t y, uint8_t color=COLOR_WHITE)
Definition: eboled.cxx:234
mraa::Result refresh()
Definition: eboled.cxx:116
~EBOLED()
Definition: eboled.cxx:111
void drawRectangleFilled(int8_t x, int8_t y, uint8_t width, uint8_t height, uint8_t color=COLOR_WHITE)
Definition: eboled.cxx:339
void drawChar(uint8_t x, uint8_t y, uint8_t data, uint8_t color, uint8_t size)
Definition: eboled.cxx:180
void drawRectangle(int8_t x, int8_t y, uint8_t width, uint8_t height, uint8_t color=COLOR_WHITE)
Definition: eboled.cxx:313
void drawRoundedCornersFilled(int8_t x0, int8_t y0, int16_t radius, uint8_t cornername, int16_t delta, uint8_t color)
Definition: eboled.cxx:506
void fillScreen(uint8_t color=COLOR_WHITE)
Definition: eboled.cxx:535
void drawLineVertical(int8_t x, int8_t y, uint8_t height, uint8_t color=COLOR_WHITE)
Definition: eboled.cxx:308
void drawTriangle(int8_t x0, int8_t y0, int8_t x1, int8_t y1, int8_t x2, int8_t y2, uint8_t color=COLOR_WHITE)
Definition: eboled.cxx:346
const uint8_t COLOR_WHITE
API for EBOLED spi controlled OLED display.
Definition: eboled.h:72
void drawRoundCorners(int8_t x0, int8_t y0, int16_t radius, uint8_t cornername, uint8_t color)
Definition: eboled.cxx:466
void drawRoundedRectangle(int8_t x, int8_t y, int8_t width, int8_t height, int16_t radius, uint8_t color)
Definition: eboled.cxx:326
mraa::Result home()
Definition: eboled.cxx:229
EBOLED(int spi=EBOLED_DEFAULT_SPI_BUS, int CD=EBOLED_DEFAULT_CD, int reset=EBOLED_DEFAULT_RESET)
Definition: eboled.cxx:37
void setTextSize(uint8_t size)
Definition: eboled.cxx:172