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.
Diff: OLED160G1/OLED160G1.h
- Revision:
- 0:e3f7b0fd072e
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/OLED160G1/OLED160G1.h Wed Mar 06 23:09:06 2013 +0000
@@ -0,0 +1,222 @@
+/**
+ * mbed library for 4D Systems uOLED-160-G1
+ *
+ */
+
+#ifndef _OLED160G1_H_
+#define _OLED160G1_H_
+
+
+#define OLED_BAUDRATE 256000 // 300 baud to 256kbaud supported (256k not always stable?)
+#define OLED_INIT_DELAY 1100 // milliseconds
+
+// Initialisation routine
+#define OLED_DETECT_BAUDRATE 0x55
+
+// Drawing routines
+#define OLED_CLEAR 0x45
+#define OLED_BKGCOLOR 0x42
+#define OLED_COPYPASTE 0x63
+#define OLED_PEN_SIZE 0x70
+
+// Graphics
+#define OLED_LINE 0x4C
+#define OLED_CIRCLE 0x43
+#define OLED_CIRCLEFILL 0x69
+#define OLED_PUTPIXEL 0x50
+#define OLED_READPIXEL 0x52
+#define OLED_RECTANGLE 0x72
+
+// Text properties
+#define OLED_TEXT 0x73
+#define OLED_SETFONTSIZE 0x46
+#define OLED_FONT5X7 0x00
+#define OLED_FONT8X8 0x01
+#define OLED_FONT8X12 0x02
+#define OLED_TEXTFORMATED 0x54
+#define OLED_SET_TEXT_BACKGROUND_TYPE 0x4F
+#define OLED_SET_BACKGROUND_COLOR 0x42
+#define OLED_SET_TEXT_TRANSPARENT 0x00
+#define OLED_SET_TEXT_OPAQUE 0x01
+
+// OLED Control
+#define OLED_COMMAND_CONTROL 0x59
+#define OLED_COMMAND_DISPLAY 0x01
+#define OLED_COMMAND_CONTRAST 0x02
+#define OLED_COMMAND_POWER 0x03
+
+// Responses
+#define OLED_ACK 0x06 // Ok
+#define OLED_NAK 0x15 // Error
+
+// Colours
+#define OLED_WHITE 0xFFFF
+#define OLED_BLACK 0x0000
+#define OLED_BLUE 0xA6BF
+#define OLED_RED 0xF800
+#define OLED_GREEN 0x2500
+
+#define red_min 0//150
+#define red_max 255
+#define blue_min 0//185
+#define blue_max 255
+#define green_min 0//195
+#define green_max 255
+
+
+class OLED160G1 : public Stream {
+public:
+
+ /**
+ * Default constructor.
+ */
+ OLED160G1(PinName serialTx, PinName serialRx, PinName resetPin);
+
+ /**
+ * Reset the display using the reset pin (the reset pin is active-low).
+ */
+ void resetDisplay();
+
+ /**
+ * Initialise OLED display.
+ */
+ void init();
+
+ /**
+ * Processes responses (ACK or NAK) from the OLED. A new command cannot be sent to the OLED until a NAK is received, so
+ * this function waits for the minimum time needed.
+ */
+ void getResponse();
+
+ /**
+ * Clear the OLED screen.
+ */
+ void eraseScreen();
+
+ /**
+ * Calculate 16-bit value from RGB (0 to 63, 565 format)
+ */
+ int toRGB(int red, int green, int blue);
+
+ /**
+ *
+ */
+ void drawPixel(char x, char y, int color);
+
+ /**
+ *
+ */
+ void drawLine(char x1, char y1, char x2, char y2, int color);
+
+ /**
+ *
+ */
+ void drawRectangle(char x, char y, char width, char height, int color);
+
+ /**
+ *
+ */
+ void drawCircle(char x, char y, char radius, int color);
+
+ /**
+ * Set font size, for use with printf() or OLED_DrawSingleChar(); all other functions override this setting.
+ *
+ * @param : fontSize can be: OLED_FONT5X7, OLED_FONT8X8, or OLED_FONT8X12
+ */
+ void setFontSize(char fontSize);
+
+ /**
+ * Set font color, for use with printf(); all other functions override this setting.
+ */
+ void setFontColor(int fontColor);
+
+ /**
+ * Set the "pen size".
+ *
+ * @param penSize : 0 to draw solid objects; 1 to draw wireframe objects.
+ */
+ void setPenSize(char penSize);
+
+ /**
+ * Set whether or not text is drawn with an opaque or transparent background.
+ *
+ * @param : textBackgroundType can be OLED_SET_TEXT_TRANSPARENT or OLED_SET_TEXT_OPAQUE
+ */
+ void setTextBackgroundType(char textBackgroundType);
+
+ /**
+ *
+ */
+ void setBackgroundColor(int color);
+
+ /**
+ *
+ */
+ void drawText(char column, char row, char font_size, char *mytext, int color);
+
+ /**
+ * Draw a single ASCII character at the specified location.
+ */
+ void drawSingleChar(char column, char row, char theChar, int color);
+
+ /**
+ * Display control functions, such as display ON/OFF, contrast and power-up/power-down.
+ *
+ * @param value : can be 0x00 to 0x0F is mode is OLED_COMMAND_CONTRAST. Default contrast value is 0x08.
+ */
+ void displayControl(char mode, char value);
+
+ /**
+ *
+ */
+ char getPenSize();
+
+ /**
+ * Get number of text rows
+ */
+ int rows(); //TODO: must depend on font size
+
+ /**
+ * Get number of text columns
+ */
+ int columns();
+
+ /**
+ * Set text cursor location
+ */
+ virtual void locate(int column, int row);
+
+ /**
+ *
+ */
+ int lastCount;
+
+ /**
+ *
+ */
+ int NAKCount;
+
+protected:
+ virtual int _putc(int value);
+ virtual int _getc();
+
+ /**
+ * Text cursor column number
+ */
+ short _column;
+
+ /**
+ * Text cursor row number
+ */
+ short _row;
+
+ char _fontSize;
+ char _penSize;
+ int _fontColor;
+
+private:
+ Serial s;
+ DigitalOut reset;
+};
+
+#endif
\ No newline at end of file