4Dsystems Oled library
OLED32028P1T.h@0:0e93e95bab96, 2015-01-08 (annotated)
- Committer:
- star297
- Date:
- Thu Jan 08 12:01:58 2015 +0000
- Revision:
- 0:0e93e95bab96
Update baud rate defines
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
star297 | 0:0e93e95bab96 | 1 | // mbed library for 4DSystems uOLED-32028-P1T |
star297 | 0:0e93e95bab96 | 2 | |
star297 | 0:0e93e95bab96 | 3 | // *****OLED_BAUDRATE must start at 9600******* |
star297 | 0:0e93e95bab96 | 4 | |
star297 | 0:0e93e95bab96 | 5 | #define BAUDRATE 9600 // MUST use 9600 here to initialise display, can be redefined upto 256K in OLED3208P1T.cpp |
star297 | 0:0e93e95bab96 | 6 | |
star297 | 0:0e93e95bab96 | 7 | // Screen states |
star297 | 0:0e93e95bab96 | 8 | #define OFF 0x00 |
star297 | 0:0e93e95bab96 | 9 | #define ON 0x01 |
star297 | 0:0e93e95bab96 | 10 | |
star297 | 0:0e93e95bab96 | 11 | // Text properties |
star297 | 0:0e93e95bab96 | 12 | #define TEXT 0x73 |
star297 | 0:0e93e95bab96 | 13 | #define FONT5X7 0x00 |
star297 | 0:0e93e95bab96 | 14 | #define FONT8X8 0x01 |
star297 | 0:0e93e95bab96 | 15 | #define FONT8X12 0x02 |
star297 | 0:0e93e95bab96 | 16 | #define FONT12X16 0x03 |
star297 | 0:0e93e95bab96 | 17 | #define TEXTFORMATED 0x54 |
star297 | 0:0e93e95bab96 | 18 | #define SET_TEXT_BACKGROUND_TYPE 0x4F |
star297 | 0:0e93e95bab96 | 19 | #define SET_BACKGROUND_COLOR 0x42 |
star297 | 0:0e93e95bab96 | 20 | #define TEXT_TRANSPARENT 0x00 |
star297 | 0:0e93e95bab96 | 21 | #define TEXT_OPAQUE 0x01 |
star297 | 0:0e93e95bab96 | 22 | #define OLED_TEXT_BUTTON 0x62 |
star297 | 0:0e93e95bab96 | 23 | |
star297 | 0:0e93e95bab96 | 24 | // Colours |
star297 | 0:0e93e95bab96 | 25 | #define BLACK 0x0000 |
star297 | 0:0e93e95bab96 | 26 | #define WHITE 0xFFFF |
star297 | 0:0e93e95bab96 | 27 | #define RED 0xF800 |
star297 | 0:0e93e95bab96 | 28 | #define GREEN 0x07E0 |
star297 | 0:0e93e95bab96 | 29 | #define BLUE 0x001F |
star297 | 0:0e93e95bab96 | 30 | #define YELLOW 0xFFE0 |
star297 | 0:0e93e95bab96 | 31 | #define CYAN 0x07FF |
star297 | 0:0e93e95bab96 | 32 | #define MAGENTA 0xF81F |
star297 | 0:0e93e95bab96 | 33 | #define BLUE2 0xA6BF |
star297 | 0:0e93e95bab96 | 34 | #define GREEN2 0x2500 |
star297 | 0:0e93e95bab96 | 35 | |
star297 | 0:0e93e95bab96 | 36 | #define red_min 0//150 |
star297 | 0:0e93e95bab96 | 37 | #define red_max 255 |
star297 | 0:0e93e95bab96 | 38 | #define blue_min 0//185 |
star297 | 0:0e93e95bab96 | 39 | #define blue_max 255 |
star297 | 0:0e93e95bab96 | 40 | #define green_min 0//195 |
star297 | 0:0e93e95bab96 | 41 | #define green_max 255 |
star297 | 0:0e93e95bab96 | 42 | |
star297 | 0:0e93e95bab96 | 43 | class OLED32028P1T : public Stream { |
star297 | 0:0e93e95bab96 | 44 | public: |
star297 | 0:0e93e95bab96 | 45 | |
star297 | 0:0e93e95bab96 | 46 | OLED32028P1T(PinName serialTx, PinName serialRx, PinName resetPin); // Default constructor |
star297 | 0:0e93e95bab96 | 47 | |
star297 | 0:0e93e95bab96 | 48 | // TEXT FUNCTIONS |
star297 | 0:0e93e95bab96 | 49 | void setFontSize(int fontSize); // fontSize can be: OLED_FONT5X7, OLED_FONT8X8, or OLED_FONT8X12 |
star297 | 0:0e93e95bab96 | 50 | void setFontColor(int fontColor); // Set font color, for use with printf(); all other functions override this setting. |
star297 | 0:0e93e95bab96 | 51 | void drawText(int column, int row, int font_size, char *mytext, int color); // Draw string text at character location column & row) |
star297 | 0:0e93e95bab96 | 52 | void drawSingleChar(int column, int row, int theChar, int color); // Draw a single ASCII character at the specified location. |
star297 | 0:0e93e95bab96 | 53 | void drawTextGraphic(int x, int y, int font_size, char *mytext, int color, int width, int height); // Draw string text at pixel location x & y) |
star297 | 0:0e93e95bab96 | 54 | // GRAPHIC FUNCTIONS |
star297 | 0:0e93e95bab96 | 55 | void drawCircle(int x, int y, int radius, int color); |
star297 | 0:0e93e95bab96 | 56 | void drawRectangle(int x, int y, int width, int height, int color); |
star297 | 0:0e93e95bab96 | 57 | void drawLine(int x1, int y1, int x2, int y2, int color); |
star297 | 0:0e93e95bab96 | 58 | void drawPixel(int x, int y, int color); |
star297 | 0:0e93e95bab96 | 59 | void drawTextButton(int up_down, int x, int y, int button_colour, int font, int string_colour, int width, int height, char *mytext); |
star297 | 0:0e93e95bab96 | 60 | |
star297 | 0:0e93e95bab96 | 61 | // TOUCH FUNCTIONS |
star297 | 0:0e93e95bab96 | 62 | void enableTouch(); // Enables the Touch Screen |
star297 | 0:0e93e95bab96 | 63 | void disableTouch(); // Disables the Touch Screen |
star297 | 0:0e93e95bab96 | 64 | void setTouchArea(int, int, int, int); // define Touch Area 0,0,219,239 for whole screen |
star297 | 0:0e93e95bab96 | 65 | void resetTouchArea(); // Resets Touch Area to whole screen |
star297 | 0:0e93e95bab96 | 66 | void waitTouch(int); // wait for Touch, wait time in milliseconds. Maximum value of 65,535 msec or 65.5 seconds used for delay in sd card image display. |
star297 | 0:0e93e95bab96 | 67 | unsigned char getTouch(int *xbuffer, int *ybuffer); // get Touch co-ordiantes |
star297 | 0:0e93e95bab96 | 68 | unsigned char getTouchRelease(int *xbuffer, int *ybuffer); // get Touch Release co-ordiantes |
star297 | 0:0e93e95bab96 | 69 | unsigned char getTouchPress(int *xbuffer, int *ybuffer); // get Touch Press co-ordiantes |
star297 | 0:0e93e95bab96 | 70 | |
star297 | 0:0e93e95bab96 | 71 | |
star297 | 0:0e93e95bab96 | 72 | // SD FUNCTIONS |
star297 | 0:0e93e95bab96 | 73 | unsigned char stringSD(int, int, int, int, int, unsigned char, unsigned char, int, int, char[]); |
star297 | 0:0e93e95bab96 | 74 | unsigned char imageSD(int , int , char[]); |
star297 | 0:0e93e95bab96 | 75 | |
star297 | 0:0e93e95bab96 | 76 | // DISPLAY CONTROL FUNCTION |
star297 | 0:0e93e95bab96 | 77 | void resetDisplay(); // Reset the display using the reset pin (the reset pin is active-low). |
star297 | 0:0e93e95bab96 | 78 | void init(); // Initialise OLED display. |
star297 | 0:0e93e95bab96 | 79 | void baudReset(); |
star297 | 0:0e93e95bab96 | 80 | void getResponse(); // Processes responses (ACK or NAK) from the OLED. A new command cannot be sent to the OLED until a NAK is received, so |
star297 | 0:0e93e95bab96 | 81 | // this function waits for the minimum time needed. |
star297 | 0:0e93e95bab96 | 82 | void clear(); // Clear the OLED screen. |
star297 | 0:0e93e95bab96 | 83 | void setPenSize(int penSize); // Set the "pen size". |
star297 | 0:0e93e95bab96 | 84 | void setTextBackgroundType(int textBackgroundType); //textBackgroundType can be OLED_SET_TEXT_TRANSPARENT or OLED_SET_TEXT_OPAQUE |
star297 | 0:0e93e95bab96 | 85 | void setBackgroundColor(int color); |
star297 | 0:0e93e95bab96 | 86 | int toRGB(int red, int green, int blue);// Calculate 16-bit value from RGB (0 to 63, 565 format) |
star297 | 0:0e93e95bab96 | 87 | void displayControl(int mode, int value); // Display control functions, such as display ON/OFF, power-up/power-down. |
star297 | 0:0e93e95bab96 | 88 | void displayOff(); |
star297 | 0:0e93e95bab96 | 89 | void displayOn(); |
star297 | 0:0e93e95bab96 | 90 | void displaySleep(); |
star297 | 0:0e93e95bab96 | 91 | char getPenSize(); // Get Pen Size |
star297 | 0:0e93e95bab96 | 92 | int rows(); //Get number of text rows TODO: must depend on font size |
star297 | 0:0e93e95bab96 | 93 | int columns();// Get number of text columns |
star297 | 0:0e93e95bab96 | 94 | virtual void locate(int column, int row);// Set text cursor location |
star297 | 0:0e93e95bab96 | 95 | int lastCount; |
star297 | 0:0e93e95bab96 | 96 | int NAKCount; |
star297 | 0:0e93e95bab96 | 97 | |
star297 | 0:0e93e95bab96 | 98 | protected: |
star297 | 0:0e93e95bab96 | 99 | virtual int _putc(int value); |
star297 | 0:0e93e95bab96 | 100 | virtual int _getc(); |
star297 | 0:0e93e95bab96 | 101 | short _column; //Text cursor column number |
star297 | 0:0e93e95bab96 | 102 | short _row; //Text cursor row number |
star297 | 0:0e93e95bab96 | 103 | int _fontSize; |
star297 | 0:0e93e95bab96 | 104 | int _penSize; |
star297 | 0:0e93e95bab96 | 105 | int _fontColor; |
star297 | 0:0e93e95bab96 | 106 | |
star297 | 0:0e93e95bab96 | 107 | private: |
star297 | 0:0e93e95bab96 | 108 | Serial s; |
star297 | 0:0e93e95bab96 | 109 | DigitalOut reset; |
star297 | 0:0e93e95bab96 | 110 | }; |