4Dsystems Oled library

Dependents:   RDA5807M-FM-Radio

Committer:
star297
Date:
Thu Jan 08 12:01:58 2015 +0000
Revision:
0:0e93e95bab96
Update baud rate defines

Who changed what in which revision?

UserRevisionLine numberNew 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 };